C# 代币替换和识别
我需要完成以下内容,但不确定最佳方法 以下面的字符串为例 %%%%开始%%%% 坐在同侧矢状体上,直径。[%RC:3%]Morbi suscipit 艾库利斯·阿库姆桑。莫尔比·拉奥里特·康塞特图尔·尼塞尔,卢克图斯·临时猫 ultrices commodo。8月份的酒后驾驶,非常规驾驶, 前庭位于阿梅特·洛雷姆。这是我的梦想。 前庭无骨节大。黄花相思 tincidunt。杜伊斯·梅特斯·奎姆,酵母菌发酵液id,tincidunt id 乱数假文。[%RC:1%] %%%%结束%%%% 我需要能够做的是获取该字符串,首先查找所有出现的“令牌”C# 代币替换和识别,c#,regex,string,C#,Regex,String,我需要完成以下内容,但不确定最佳方法 以下面的字符串为例 %%%%开始%%%% 坐在同侧矢状体上,直径。[%RC:3%]Morbi suscipit 艾库利斯·阿库姆桑。莫尔比·拉奥里特·康塞特图尔·尼塞尔,卢克图斯·临时猫 ultrices commodo。8月份的酒后驾驶,非常规驾驶, 前庭位于阿梅特·洛雷姆。这是我的梦想。 前庭无骨节大。黄花相思 tincidunt。杜伊斯·梅特斯·奎姆,酵母菌发酵液id,tincidunt id 乱数假文。[%RC:1%] %%%%结束%%%% 我需要能
[%RC:(int)%]
,获取该令牌中包含的id(将用于查询数据),然后用新字符串替换整个令牌
我该怎么做?任何建议和指导都会很好。假设您有一本字典可以用来查找替换字符串,请尝试使用带
匹配计算器的重载:
string result = Regex.Replace(
text,
@"\[%RC:(\d+)%\]",
match => dict[int.Parse(match.Groups[1].Value)]);
联机查看它的工作情况:这只是替换[%RC:%]之间的内容,还是替换整个字符串?有没有可能得到一个包含所有找到的令牌的数组,这样我就可以在它们之间循环?我刚刚看到它在网上工作。我想你实际上为我的初始问题创建了一个更优雅的解决方案。我现在就来试试。谢谢找到包含MatchEvaluator的重载为我节省了一吨时间(和LOC)--谢谢Mark!