我需要能找到包含在两个“%”符号中的单词的内容,并将第一个%
替换为[
,将第二个%
符号替换为]
}。
所以在字符串中“这是带有%百分号的虚拟文本%” 然后它将使它“这是虚拟文本[带]百分号”
编辑:是否有办法在同一个正则表达式中搜索和替换两个不同的东西?就像我需要用[blah]替换%blah%而用[~dp1]替换%~dp1时,%~dp1调用的格式为%〜(这里可能是一些字母)(总是以一个数字结束,这就是你怎么样的知道电话已经结束了)抱歉这是最后一件事:)答案 0 :(得分:5)
我会匹配特殊字符所包围的整个子字符串,并将其替换为包含相同内部字符但带括号而不是百分号的字符串。如果输入可以包含许多这些子字符串,请确保使用nongreedy匹配:
Regex.Replace("This is dummy text %with% percent signs", "%(.*?)%", @"[$1]");
答案 1 :(得分:2)
试试这个:
Regex.Replace(s, "%([^%]+)%", "[$1]")
答案 2 :(得分:0)
使用MatchEvaluator提供替换值。与(i++ % 2)
int i = 0;
Regex.Replace(s, "%", m => (i++ % 2) == 0 ? "[" : "]");