正则表达式查找并替换模式匹配与其他模式

时间:2016-03-17 16:19:10

标签: c# regex

用字符串替换模式匹配是常用的方法,但是我需要将匹配模式匹配的所有子字符串替换为另一种模式匹配,是否可能?

例如,是否可以将所有匹配替换为 [0-9]{2}'[0-9]{2}代表99'9985'55

等所有字符串

[0-9]{2}.[0-9]{2}代表所有字符串,例如99.9985.55

有可能吗?怎么做这种替代品? 或者我必须通过匹配为每个循环手动处理它?<​​/ p>

2 个答案:

答案 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,因为有两个捕获组。

构建替换字符串时,只需插入这些变量并在它们之间放置点。

相关问题