我希望它在c#中使用Regex搜索"$12,56,450"
之类的字符串,但它与字符串不匹配
这是我的代码:
string input="Total earn for the year $12,56,450";
string pattern = @"\b(?mi)($12,56,450)\b";
Regex regex = new Regex(pattern);
if (regex.Match(input).Success)
{
return true;
}
答案 0 :(得分:1)
此正则表达式将完成此任务,(?mi)(\$\d{2},\d{2},\d{3})
,此处为Regex 101 to prove it。
现在让我们分解一下:
\$
与字符串$
相匹配
\d{2}
匹配任意两位数字,
与文字,
\d{2}
匹配任意两位数字,
与文字,
\d{3}
匹配任意三位数字现在,为了演示的目的,我删除了单词boundary \b
,但我也非常有信心你不需要它们。请注意,对于这种有限的字符串匹配,字边界通常不是必需的。 Consider their definition:
答案 1 :(得分:0)
您需要转义$和其他一些特殊的正则表达式字符。
试试这个@“\ b(?mi)(\ $ 12,56,450)\ b”;
如果你想要你可以使用\ d匹配一个数字,并使用\ d {2,3}匹配一个大小为2或3的数字。