newName = Regex.Replace(newName,pattern, txtReplaceNew, RegexOptions.IgnoreCase);
这里pattern是由用户输入的,可能含有任意字符,包括正则表达式中的特殊字符,而我只想让它在Regex.Replace语句中以普通字符的形态进行匹配newName。需要如何处理?
例:
newName=“[www.cntingshu.com]百家讲坛_春秋五霸03_管仲相齐-李山.20110813”;
pattern=“[www.cntingshu.com]百家讲坛_”;
这里[].都是特殊字符,当然还有其它很多特殊字符。我无法知道用户要输入哪些字符,所以不可能手工加“/”来处理
pattern=“[www.cntingshu.com]百家讲坛_”;
pattern=Regex.Replace(pattern,@"\[|\]|\.",@"\$0");
正则中有个Escape方法,直接可以将正则表达式中的转义字符当成普通字符匹配:
string s = @"[www.\cntingshu.com]百家讲坛_"; string pattern = s; bool result = Regex.IsMatch(s, Regex.Escape(pattern)); Response.Write(result);