2011-11-30 109 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)一吨 - 感谢马克! –