仅当它们不以“@”开头时才替换所有出现的字符串

时间:2013-07-05 06:25:18

标签: c# regex string regular-language

我想替换所有出现的字符串,只要它们不以“@”开头,例如在以下查询中:

 (surname = @surname and surname = @surname1)

如果我想替换surname,它只会替换等号左侧的两个。因此,请将@surname@surname1取消替换。

1 个答案:

答案 0 :(得分:3)

您可以使用Regex.Replace

Regex.Replace(yourString, "([^@])surname", "$1Diaz");

[^@]基本上告诉正则表达式,除@符号之外的任何字符都可以出现在您要查找的“姓氏”文本之前。 $ 1是必要的,因为否则,无论什么角色也会被剥离。

请注意,如果该字符串位于字符串的开头,则此正则表达式不会与“surname”匹配。在您提供的示例中,它以开括号开头,因此只要该条件成立,上述解决方案就可以正常工作。