c#正則表示式過濾特殊字元
阿新 • • 發佈:2019-02-15
碰到了一個問題,要過濾字串中的|#|$|^|*|(|)|+|{|?|[|.這種字元。可是這些字元時正則表示式中的特殊字元,怎麼辦呢?有兩種辦法。
主要的思路是把 類似 “*” “[”的Relpace 為“\*”,"\["等
1,直接替換。
splitKey = splitKey.Replace("|", "\\|").Replace("#", "\\#").Replace("$", "\\$").Replace("^", "\\^").Replace("*", "\\*").Replace("(", "\\(").Replace(")", "\\)").Replace("+", "\\+"); splitKey = splitKey.Replace("{", "\\{").Replace("}", "\\}").Replace("?", "\\?").Replace("[", "\\[").Replace("]", "\\]").Replace(".", "\\.");
//char[] charKey = { '|', '#', '$', '^', '*', '(',')', '+', '{', '}', '?', '[', ']', '.', '\\' };
splitKey = Regex.Escape(splitKey);
測試:
replaceStr = Regex.Replace(replaceStr , splitKey, String.Empty, RegexOptions.CultureInvariant);
成功。