我有一個字符串,它代表了xml的一部分。C#正則表達式替換字符串只在標籤外
string text ="word foo<tag foo='a' />another word "
我需要替換此字符串中的特定字詞。所以我用這個代碼:
Regex regex = new Regex("\\b" + co + "\\b", RegexOptions.IgnoreCase);
return regex.Replace(text, new MatchEvaluator(subZvyrazniStr));
static string subZvyrazniStr(Match m)
{
return "<FtxFraze>" + m.ToString() + "</FtxFraze>";
}
但我的代碼的問題是,它也取代裏面的標籤,這是我不希望的字符串。那麼我應該添加什麼來替換標籤之外的單詞呢?
例:當我設置變量共同爲「富」我想回到"word <FtxFraze>foo</FtxFraze><tag foo='a' />another word"
感謝
你不應該嘗試的正則表達式解析或修改XML如果XML結構是相關的。 [請參閱。](http://stackoverflow.com/a/1732454/1633117)改爲使用XML分析器。然後,您可以將Regex代碼僅應用於文本節點。 –
我知道,但在這種情況下,我有很多的節點,我不知道確切的結構,所以我認爲這是更快,更容易做到這一點與正則表達式 – david