正则表达式:递归反向引用 - 有何用处?
我在许多正则表达式引擎中发现了一些有趣的可能性:
可以在捕获组内放置反向引用并引用该组。
例如:(\1)
我的问题:为了什么可以使用正则表达式模式吗?我无法想象...
I found some interesting possibility in many regex engines:
It's possible to place backreference inside the capture group and reference this group.
For example: (\1)
My question: for what regex patterns it may be used? I can't imagine...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
有一个 使用嵌套引用的说明,我认为它清楚地表明了该功能的边际用途。
There is an explanation for use of nested references, which I think clearly demonstrates the marginal usefulness of this feature.
我有一个很长的 yaml 模式,我需要/想要从以下位置更改:
到此:
在这种情况下,我需要在反向引用中进行一定程度的递归,因为列名称位于列描述之间。
这适用于每一行,但我不能将“{}”放在 $1 周围,我最终会在每个描述字段之间加上括号:
I've got a long yaml schema, which I need/want to change from this:
To this:
in this case I need a level of recursion in backrefences, because the column names are in between column description.
This is suitable for each line, but i cant put "{}" arround $1, I'd end up with brackets between each description field:
怎么样(忽略空格):
{ .* ( { .* \1 .* } ) .* }
来匹配 C#/Java/... 中方法的主体
How about this (ignore the whitespace):
{ .* ( { .* \1 .* } ) .* }
to match the body of a method in C#/Java/...