1. 程式人生 > >c#正則表示式過濾特殊字元

c#正則表示式過濾特殊字元

碰到了一個問題,要過濾字串中的|#|$|^|*|(|)|+|{|?|[|.這種字元。可是這些字元時正則表示式中的特殊字元,怎麼辦呢?有兩種辦法。

主要的思路是把 類似 “*” “[”的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);


成功。