繁体   English   中英

正则表达式:使用特殊的重新字符从字面上获取字符串

[英]Regular expression: take string literally with special re-characters

也许简单的问题..

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);

请注意,在许多情况下,您会希望转义字符串与其他一些正则表达式片段组合以形成完整的模式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM