gpt4 book ai didi

.net - RegexPlanet 是否支持在 .NET 的替换字符串中捕获组引用,如果支持,如何支持?

转载 作者:行者123 更新时间:2023-12-04 04:46:59 25 4
gpt4 key购买 nike

在以下正则表达式的情况下:

(.*)in(.*)-in(.*)

以及以下替换字符串:
$18888$29999$3

根据 http://fiddle.re/8ky3a,RegexPlanet 网站似乎将我的一些捕获组引用视为文字。 .

例如,输入 in-in它产生 $18888$29999而不是 88889999 ,好像第三组匹配(到空字符串),但前两组没有。

我尝试了以下替代方法但没有成功:

命名捕获:
(?'name'...)       -- Captures, but can't be referenced
(?<name>...) -- Generates error on site

引用方法:
${n}               -- Where n is the capture group number
${name}

我已经能够使用未命名和命名的捕获方法来处理琐碎的情况。

任何想法发生了什么?在相关方面,您能否推荐任何支持替换和匹配的 RegexPlanet 替代品?

最佳答案

大多数情况下,RegexPlanet 的 .NET 机制运行良好。上述替换字符串的问题在于,您不能在带数字的编号组引用之后,而必须用 {} 将其括起来。相反,如:

${1}8888${2}9999$3

如本工作所示 fiddle .

命名引用也适用,尽管仅适用于 (?'name'...) ,不是 (?<name>...) , 可引用 ${name} .问题 <>命名引用可能是站点中的一个错误,与其在 HTML 上下文中的使用有关。

使用 (?<name>...) 的工作示例可以在此看到 ideone example .

关于.net - RegexPlanet 是否支持在 .NET 的替换字符串中捕获组引用,如果支持,如何支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18036362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com