C# 正则表达式.匹配满足特殊字符时的停止匹配
本文关键字:满足 正则表达式 特殊字符 | 更新日期: 2023-09-27 18:35:58
这是我的代码:
// Clear strange characters
String string1 = "d34-&%#*%(#**)2121js3412h";
String string2 = Regex.Match(string1, @"'d+").Value;
Console.WriteLine(string2);
上述代码的输出为:34
。
预期输出为:3421213412
。
为什么Match
在"-"字符(或任何特殊字符)处停止匹配?
我错过了一些正则表达式规则吗?
您可以随时使用 Regex.Replace
:
string string2 = Regex.Replace(string1, @"[^0-9]", "");
如果你想要所有匹配项,请使用Regex.Matches
:
var matches = Regex.Matches(string1, @"'d+").Cast<Match>().Select(x => x.Value);
string string2 = string.Concat(matches);
它与特殊字符无关。这就是Match
方法的行为,它返回找到的第一个匹配项。