[英]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.