也许是简单的问题..
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' 匹配......
谢谢。
最佳答案
要获得正则表达式安全的文字:
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);
请注意,在许多情况下,您会希望将转义字符串与其他一些正则表达式片段组合以形成完整的模式。
关于c# - 正则表达式 : take string literally with special re-characters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7038406/