【发布时间】:2013-08-03 19:15:19
【问题描述】:
在以下正则表达式的情况下:
(.*)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 替代品?
【问题讨论】:
-
不清楚您所说的“在参考字符串中”是什么意思-您真正想要实现什么?你能用简单的 C# 或 VB 代码来演示它,而不是参考一个特定的网站吗?
-
我没有理由怀疑 .NET 的正则表达式支持的底层功能,我想我通过阅读文档了解它。我的问题实际上是关于网站的行为。我正在尝试实现 fiddle.re/ykf3a 的 .NET 等效项,这仅在我试图回答别人的 SO 问题并想提供类似小提琴的参考时出现。
-
具体来说,在我在上一条评论中分享的 Java 案例中,它在结果中包含一列,指示各种“替换”方法返回的内容。当我为 .NET 做同样的事情时,没有这样的列。也许这表明 .NET 网站上缺乏对“替换”的支持,但我想知道为什么他们有“替换”输入字段。
-
对不起,我指的是标题和首句中的“替换字符串”而不是“参考字符串”。
-
但是我们既不知道输入,也不知道替换,也不知道您使用的正则表达式。我们在这里真的没有足够的上下文。请给我们一个您正在尝试的具体示例。