2011-04-20 49 views
4

我正在对大文件执行Replace操作。我有一个问题,与“(”字符 这是我的方法:Regex.Replace在特殊字符上失败

public static string Replace(string input, string stringToMask, string mask) 
{ 
    return Regex.Replace(input, @"(?<![0-9])" + stringToMask + "(?![0-9])", mask); 
} 

这个字符串“纽约梅隆银行资产服务(IN”导致此错误:

parsing "(?<![0-9])BNY MELLON INVESTMENT SERVICING (IN(?![0-9])" - Not enough)'s. 

任何方式避免这种情况?

回答

7

幸运的是BCL有你的背部。

var pattern = @"(?<![0-9])" + Regex.Escape(stringToMask) + "(?![0-9])"; 
return Regex.Replace(input, pattern, mask); 
+0

谢谢,这是正确的答案。 – Yoav 2011-04-21 07:29:11