c#正则表达式过滤特殊字符

来源:互联网 发布:淘宝卖家账号怎么注册 编辑:程序博客网 时间:2024/05/22 00:49

碰到了一个问题,要过滤字符串中的|#|$|^|*|(|)|+|{|?|[|.这种字符。可是这些字符时正则表达式中的特殊字符,怎么办呢?有两种办法。

主要的思路是把 类似 “*” “[”的Relpace 为“\*”,"\["等

1,直接替换。

 

splitKey = splitKey.Replace("|", "\\|").Replace("#", "\\#").Replace("$", "\\$").Replace("^", "\\^").Replace("*", "\\*").Replace("(", "\\(").Replace(")", "\\)").Replace("+", "\\+");splitKey = splitKey.Replace("{", "\\{").Replace("}", "\\}").Replace("?", "\\?").Replace("[", "\\[").Replace("]", "\\]").Replace(".", "\\.");


2,使用Regex.Escape()方法。参考(http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.escape.aspx)

 

//char[] charKey = { '|', '#', '$', '^', '*', '(',')', '+', '{', '}', '?', '[', ']', '.', '\\' };splitKey = Regex.Escape(splitKey);

测试:

replaceStr = Regex.Replace(replaceStr , splitKey, String.Empty, RegexOptions.CultureInvariant);


成功。

原创粉丝点击