我试图从10:131186;
中提取数字并获得10131186
而没有使用:
和;
。C#正则表达式从数字中提取某些数字
什么是我需要创建的正则表达式模式?
var input = "10:131186;";
string pattern = ":(.*);";
Match m = Regex.Match(input, pattern);
Console.WriteLine(m.Value);
与上面的代码,我得到:131186;
代替10121186
。
我试图从10:131186;
中提取数字并获得10131186
而没有使用:
和;
。C#正则表达式从数字中提取某些数字
什么是我需要创建的正则表达式模式?
var input = "10:131186;";
string pattern = ":(.*);";
Match m = Regex.Match(input, pattern);
Console.WriteLine(m.Value);
与上面的代码,我得到:131186;
代替10121186
。
刚打印组索引1
var input = "10:131186;";
string pattern = ":(.*);";
Match m = Regex.Match(input, pattern);
Console.WriteLine(m.Value[1]);
或使用断言。
var input = "10:131186;";
string pattern = "(?<=:).*?(?=;)";
Match m = Regex.Match(input, pattern);
Console.WriteLine(m.Value);
谢谢:)它的工作。 – user2329418
接受5分钟后,如果这个工程。 –
您可以使用模式\\d+
字符串匹配中的数字和它们连接为一个字符串。
using System;
using System.Text;
using System.Text.RegularExpressions;
public class Program
{
public static void Main()
{
string input = "10:131186;";
MatchCollection mCol = Regex.Matches(input, "\\d+");
StringBuilder sb = new StringBuilder();
foreach (Match m in mCol)
{
sb.Append(m.Value);
}
Console.WriteLine(sb);
}
}
结果:
10131186
为什么你需要使用正则表达式。这比使用string.Replace
方法
string input = "10:131186;";
input = input.Replace(":", "");
input = input.Replace(";", "");
Console.WriteLine(input);
您可以尝试使用Regex.Replace
慢:
var input = "10:131186;";
string pattern = @"(\d+):(\d+);";
string res = Regex.Replace(input, pattern, "$1$2");
Console.WriteLine(res);
,您还可以使用Split
与Join
:
var input = "10:131186;";
Console.WriteLine(string.Join("", input.Split (new char[] { ':', ';' }, StringSplitOptions.RemoveEmptyEntries)));
请试试这个..
string input = "10:131186;";
input = input.Replace(":", String.Empty).Replace(";", string.Empty);
使用string.Replace()比正则表达式... –