用字符串替换模式匹配是常用的方法,但是我需要将匹配模式匹配的所有子字符串替换为另一种模式匹配,是否可能?
例如,是否可以将所有匹配替换为
[0-9]{2}'[0-9]{2}
代表99'99
或85'55
此[0-9]{2}.[0-9]{2}
代表所有字符串,例如99.99
或85.55
有可能吗?怎么做这种替代品? 或者我必须通过匹配为每个循环手动处理它?</ p>
答案 0 :(得分:2)
使用Regex.Replace()
实例功能以及正则表达式捕获组,如下所示:
var regex = new Regex("([0-9]{2})'([0-9]{2})");
string result = regex.Replace(input, "$1.$2");
有关捕获组的更多详细信息,请参见here。
另外,请查看this answer。它显示了如何使用&#39; named&#39;可能在将来有所帮助的团体。
答案 1 :(得分:1)
据我所知,你有类似99&99;或85&55; 55的东西,希望用99.99或85.55取代?
您可能需要查找的是捕获组,即找到匹配项,捕获此匹配项并将其添加到结果中。
这里的RegEx将是s/([0-9]{2})'([0-9]{2})/$1.$2/g
说明:
([0-9]{2})
括号声明了标题组。这意味着,无论在其中捕获什么,都将存储到变量中。
这些变量是$1
和$2
,因为有两个捕获组。
构建替换字符串时,只需插入这些变量并在它们之间放置点。