目標字符串是"A + A_RT + B*A+AA"
。我想用B
和B
替換A
和A
。但我不想取代A_RT
到B_RT
或AA
到BB
。預期的結果是"B + A_RT + A*B+AA"
。我怎樣才能在C#中做到這一點?謝謝。正則表達式組替換問題
目前我使用下面的代碼,但它會取代A_RT
到B_RT
...
IDictionary<string, string> map = new Dictionary<string, string>()
{
{"A","B"},
{"B","A"},
};
string str = "A + A_RT + B*A+AA";
var regex = new Regex(String.Join("|", map.Keys));
var newStr = regex.Replace(str, m => map[m.Value]);
您需要使用向後看和向前看,以檢查是否有一個名稱的任何有效的字符。 – nhahtdh
在正則表達式之後追加(?<!\ w)和(?!\ w)以查看它是否有效。 – nhahtdh