2011-04-20 74 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