也许简单的问题..
String text = "fake 43 60 fake";
String patt = "[43.60]";
Match m = Regex.Match(text, patt)
在这种情况下,m.Success = true,因为点替换任何字符(也是空格)。但是我必须在patt中按字面意思匹配字符串。
当然,我可以使用patt中点之前的'\'
String patt = @"[43\.60]";
所以m.Success = false,但正则表达式世界中有更多特殊字符。
我的问题是,如何使用正则表达式,字符串将按字面设置。所以'43 .60'必须与'43 .60'完全匹配。 '43?60'必须与'43?60'相匹配....
感谢。
答案 0 :(得分:14)
获取正则表达式安全文字:
string escaped = Regex.Escape(input);
例如,要匹配文字 [43.60]
:
string escaped = Regex.Escape(@"[43.60]");
为字符串提供内容:\[43\.60]
。
然后,您可以使用此转义内容来创建正则表达式;例如:
string find = "43?60";
string escaped = Regex.Escape(find);
bool match = Regex.IsMatch("abc 43?60", escaped);
请注意,在许多情况下,您需要将转义字符串与其他正则表达式片段组合以构建完整的模式。