2011-11-30 106 views
1

1需要acomplish以下和不確定的最佳方法。令牌更換和識別

採取下面的字符串,例如,

%%%% %%%% START

這是非常重要的哀悼直徑足球鞠躬。 [%RC:3%]足球需要 目標層。 Laoreet主要足球運動員,悲傷緊身褲 籃球方便。 DUI本宣傳,有時不化妝或, 製造胡蘿蔔LOREM。對於很多有競爭,我主的大門。 這不是大鍋飯。箭袋船烏髮任何 開發商。 DUIS metus華富,發酵SED ultricies ID,tincidunt ID 非常重要。 [%RC:1%]

末%%%% %%%%

什麼,我需要能夠做的是採取字符串,首先找到的「令牌」 [%RC:(int)%]一切的發生,獲取包含該令牌(將用於查詢數據),然後用新的字符串替換整個令牌中的ID。

我會怎麼做呢?任何意見將是巨大的&指導。

回答

3

假設你有,你可以用查找替換字符串的字典,嘗試使用Regex.Replace,需要一個MatchEvaluator過載:

string result = Regex.Replace(
    text, 
    @"\[%RC:(\d+)%\]", 
    match => dict[int.Parse(match.Groups[1].Value)]); 

看到它的在線工作ideone

+0

將這種簡單替換德內容在[%RC:%]之間還是會替換整個字符串?有沒有可能獲得所有的標記數組發現,這樣我就可以通過他們循環? – kalabo

+0

剛看到它的工作online..i我想你實際上已經創建了一個更優雅的解決方案,我最初的問題。 1將嘗試這種now..thank你 – kalabo

+0

查找包含MatchEvaluator超載救了我的時間(和LOC)一噸 - 感謝馬克! –