2011-05-26 50 views
2

我有一堆文本,并在该文本中,我想要替换每个“EXAMPLE”字不包含a-zA-Z字符在它之前..所以像“[^a-z]EXAMPLE”.. 但是,当删除我只是想删除“榜样”,而不是在它的前面或后面的任何字符的字符杂项...C#regual表达式需要

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

我希望这是明智的:)

谢谢你的y我们的时间!

回答

8

可以使用negative lookbehind实现这一目标:

string cleanString = Regex.Replace(originalString, "(?<![a-zA-Z])EXAMPLE", ""); 
+0

做了伎俩..将被接受为在T - 5分钟:) anwser! TNX! – Andrej 2011-05-26 09:10:36

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, ""); 
}