C#Regex.Match遇到特殊字符时停止匹配
这是我的代码:C#Regex.Match遇到特殊字符时停止匹配,c#,regex,match,C#,Regex,Match,这是我的代码: // Clear strange characters String string1 = "d34-&%#*%(#**)2121js3412h"; String string2 = Regex.Match(string1, @"\d+").Value; Console.WriteLine(string2); 上述代码的输出为:34 预期输出为:34213412 为什么匹配在“-”字符(或任何特殊字符)处停止匹配 我是否遗漏了一些正则表达式规则?如果您想要所有匹配项,请使
// Clear strange characters
String string1 = "d34-&%#*%(#**)2121js3412h";
String string2 = Regex.Match(string1, @"\d+").Value;
Console.WriteLine(string2);
上述代码的输出为:34
预期输出为:
34213412
为什么匹配
在“-”字符(或任何特殊字符)处停止匹配
我是否遗漏了一些正则表达式规则?如果您想要所有匹配项,请使用:
var matches=Regex.matches(string1,@“\d+”).Cast()。选择(x=>x.Value);
string string2=string.Concat(匹配项);
这与特殊角色无关。这是
Match
方法的行为,它返回找到的第一个匹配项。您始终可以使用Regex.Replace
:
string string2 = Regex.Replace(string1, @"[^0-9]", "");
string string2 = Regex.Replace(string1, @"[^0-9]", "");