2011-05-26 49 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, ""); 
}