繁体   English   中英

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

[英]Regex find and replace pattern matches with other pattern

用字符串替换模式匹配是一种常见的方法,但我需要替换所有与文本中的模式匹配的子字符串,以作为另一个模式匹配进行匹配,这可能吗?

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

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

是否可以? 如何进行这种替换? 或者我必须通过每个循环的匹配手动处理它?

Regex.Replace()实例函数与 Regex 捕获组一起使用,如下所示:

var regex = new Regex("([0-9]{2})'([0-9]{2})");
string result = regex.Replace(input, "$1.$2");

可以在此处找到有关捕获组的更多详细信息。

另外,看看这个答案 它展示了如何使用“命名”组,这可能在未来有所帮助。

所以据我了解,您有 99'99 或 85'55 之类的东西,并希望将其替换为 99.99 或 85.55?

您可能要查找的是捕获组,即查找匹配项,捕获此匹配项并将其放入结果中。

这里的正则表达式是s/([0-9]{2})'([0-9]{2})/$1.$2/g

说明: ([0-9]{2})括号声明了字幕组。 这意味着,其中捕获的任何内容都将存储到变量中。 这些变量是$1$2 ,因为有两个捕获组。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM