所以我有一個很長的字符串,我有「保留字」,我需要從數據庫中取代它們的值。c#正則表達式替換動態匹配的問題?
eg.
string text = "You're salary for the month of ((month)) is ((salary))
現在我所做的就是滿足每一個保留字,然後通過我的數據集搜索,然後替換那些與他們的價值
Regex ex = new Regex(@"(?<=\(\().*?(?=\)\))");
foreach(Match match in ex.Matches(body)){
string valuefromset = values.FirstOrDefault(val => val.Variable == match.Value).Value;
var pattern = @"(("+match.Value+"))";
body = Regex.Replace(body, pattern, valuefromset, RegexOptions.IgnoreCase);
}
}
現在發生的事情是這樣的
text = "You're salary for the month of ((April)) is (($10000))";
我不確定爲什麼模式只會得到單詞而不是標籤。我應該使用另一個正則表達式,但具有特定的值嗎?具有特定的保留字在這種模式中是重要的,這就是爲什麼我使用它的原因,我不確定我在做什麼。
任何幫助表示讚賞。謝謝!!!
沒有什麼直接的關係,但你應該使用的「你」,而不是「你」。 – Shimrod 2012-04-25 13:16:50
未知令牌(保留字)是否存在於字符串中?有很多潛在的令牌嗎?看起來好像使用StringBuilder的.Replace方法會更高效,更簡單。 – MyItchyChin 2012-04-25 13:38:09