2010-02-05 64 views
1
Regex.Replace("some big text", "^.+(big).+$", "$1"); // "big" 
Regex.Replace("some small text", "^.+(big).+$", "$1"); // "some small text", but i need here empty string 

我需要從字符串中選擇一個值。沒關係,當字符串匹配模式。但是當字符串不匹配時,替換結果中會有一個原始字符串。我需要一個空字符串,當字符串不匹配模式(只使用替換)。空置換結果,當正則表達式不匹配時

回答

0

使用Regex.Match方法。這樣你可以首先檢查值是否匹配。如果是這樣,你可以做替換。否則,你只需返回一個String.Empty。 http://msdn.microsoft.com/en-us/library/twcw2f1c.aspx

+0

我知道這一點,但我不能使用Regex.Match方法。我只能使用替換。 我使用雅虎管道,並且只有選擇值的replce功能。我無法在之前添加匹配方法。 – chardex 2010-02-05 13:32:58

1

通過允許您的原始地址不匹配,匹配任意的字符串儘管正確的方法是使用match功能,你可以假的:

更多Regex.Match可以在這裏找到

Regex.Replace("some big text", "^.+(big).+$|^(.*)$", "$1$2"); // "big" 
Regex.Replace("some small text", "^.+(big).+$|^(.*)$", "$1$2"); 

它不會嘗試匹配全部捕獲正則表達式,除非第一部分按照該順序寫出失敗。