Regex.IsMatch方法,同时检查以下条件返回错误的结果,
string text = "$0.00";
Regex compareValue = new Regex(text);
bool result = compareValue.IsMatch(text);
上面的代码返回为“假”。请让我知道我是否错过了任何东西。
Regex.IsMatch方法,同时检查以下条件返回错误的结果,
string text = "$0.00";
Regex compareValue = new Regex(text);
bool result = compareValue.IsMatch(text);
上面的代码返回为“假”。请让我知道我是否错过了任何东西。
的Regex
类有图案中的转义字符的特殊方法:Regex.Escape()
改变这样的代码:
string text = "$0.00";
Regex compareValue = new Regex(Regex.Escape(text)); // Escape characters in text
bool result = compareValue.IsMatch(text);
“$”是C#正则表达式中的一个特殊字符。先逃脱吧。
Regex compareValue = new Regex(@"\$0\.00");
bool result = compareValue.IsMatch("$0.00");
正则表达式的表达式:https://msdn.microsoft.com/en-us/library/az24scfc(v=vs.110).aspx
你必须逃生$
,因为它是一种特殊的(保留)字符,这意味着 “字符串的结束”。如果.
表示只有点(比如说,小数点分隔符),你必须逃脱它,以及(在不越狱,.
意味着“任何符号”):
string pattern = @"\$0\.00";
bool result = RegEx.IsMatch(text, pattern);
至于你原来的模式,它有没有机会匹配任何字符串,因为$0.00
意味着
$ end of string, followed by
0 zero
. any character
0 zero
0 zero
,但不能跟着...
两个”串的结束。 “和'$'是特殊字符,因此如果要匹配字符本身,则需要将其转义。 ''匹配任何字符和“$”字符串
看到战争的结束一致:https://regex101.com/r/pK2uY6/1
谢谢。我如何以通用的方式检查模式?在我的问题中,它是已知的价值...有没有更简单的方法来检查任何文本的通用方式的模式? –
@Neelakandan K:您可能会发现有用的https://regex101.com/,您可以在其中测试模式并进行解释。 –
谢谢。仅供参考。 Regex.Escape方法是解决方案 –