2008-09-29 60 views

回答

27

MSDN

Replace(String, String, Int32) 

內的指定的輸入字符串,替換 匹配指定的替換字符串正則表達式模式串的一個指定的最大數量。

這不是你想要的嗎?

25

只是爲了回答原來的問題...下面的正則表達式隻字foo的第一個實例相匹配:(?!<)

(?<!foo.*)foo

此正則表達式使用負回顧後以確保在匹配之前沒有發現foo的實例。

3

您可能正在使用靜態方法。沒有(String,String,Int32)重載。首先構造一個正則表達式對象並使用myRegex.Replace。

0

在這種情況下,你不能使用:

string str ="abc546_$defg"; 
str = Regex.Replace(str,"[^A-Za-z0-9]", ""); 

相反,你需要聲明新的正則表達式實例,並使用它像這樣:

string str ="abc546_$defg"; 
Regex regx = new Regex("[^A-Za-z0-9]"); 
str = regx.Replace(str,"",1) 

通知的,它代表了應該發生替換的次數。

0

不用創建new Regex,你也可以做

Regex.Replace(originalString, "^"+pattern, stringToReplaceWith);

更換一次出現。

相關問題