需要C#正则表达式

时间:2011-05-26 09:01:18

标签: c# regex

我有一堆文字,在那篇文章中,我想替换每个“EXAMPLE”字样,前面没有a-zA-Z字符..所以像“ [^a-z]EXAMPLE” .. 但删除时我只想删除“例子”,而不是它前面的misc字符或它背后的任何字符...

所以在“BLABLAEXAMPLBLA EXAMPLEBLA”中我要输出“BLABLAEXAMPLBLA BLA”

我希望这是明确的:)

感谢您的时间!

2 个答案:

答案 0 :(得分:8)

您可以使用negative lookbehind

实现此目的
string cleanString = Regex.Replace(originalString, "(?<![a-zA-Z])EXAMPLE", "");

答案 1 :(得分:0)

您还可以使用匹配评估程序。我认为更有弹性,但也更复杂......

var regex = new Regex("[^a-z](?<a>EXAMPLE)");
var text = "BLABLAEXAMPLBLA EXAMPLEBLA";
MatchEvaluator evaluator = RemoveExample;
text = regex.Replace(text, evaluator);

...

private static string RemoveExample(Match m)
{
    return m.Value.Replace(m.Groups["a"].Value, "");
}