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 :(得分:1)
虽然正确的方法是使用match
函数,但如果原始匹配失败,可以通过允许它匹配任意字符串来伪造它:
Regex.Replace("some big text", "^.+(big).+$|^(.*)$", "$1$2"); // "big"
Regex.Replace("some small text", "^.+(big).+$|^(.*)$", "$1$2");
除非按顺序写出第一部分失败,否则它不会尝试匹配catch-all正则表达式。
答案 1 :(得分:0)
使用Regex.Match方法。这样您就可以先检查值是否匹配。如果是这样,您可以进行替换。否则,您只需返回一个String.Empty。
有关Regex.Match的更多信息,请访问:http://msdn.microsoft.com/en-us/library/twcw2f1c.aspx