我有一堆文字,在那篇文章中,我想替换每个“EXAMPLE”字样,前面没有a-z
或A-Z
字符..所以像“ [^a-z]EXAMPLE
” ..
但删除时我只想删除“例子”,而不是它前面的misc字符或它背后的任何字符...
所以在“BLABLAEXAMPLBLA EXAMPLEBLA”中我要输出“BLABLAEXAMPLBLA BLA”
我希望这是明确的:)
感谢您的时间!
答案 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, "");
}