【发布时间】:2018-03-24 02:41:23
【问题描述】:
我有正则表达式((\w;)+\w\n)(-{3,}\n)((\w;)+\w\n)+,它应该匹配以下文本:
H;e;l;a;a
---------
J;a;c;k;p
我注意到在我的正则表达式中我有 ((\w;)+\w\n) 的重复部分,所以我尝试使用反向引用重构我的正则表达式。
所以我得到了((\w;)+\w\n)(-{3,}\n)\1+,但这个与上面的示例文本不匹配。为什么这个反向引用不起作用?
【问题讨论】:
-
您使用的是哪种语言或工具?反向引用也用于引用先前匹配的文本,而不是正则表达式本身
-
在某些正则表达式中,您需要屏蔽 + 号。其他人在完整的行上运行,不会匹配换行符。
-
我在 Java 中使用正则表达式,但我首先在 regexr.com 中测试正则表达式
-
@Vasan 如何获得反向引用以匹配之前的正则表达式?
-
或者有没有其他方法可以删除我初始正则表达式中的重复项?
标签: regex regex-negation regex-lookarounds regex-group regex-greedy