【发布时间】:2013-09-08 23:33:35
【问题描述】:
鉴于您可以在正则表达式模式中引用捕获组,是否可以在 lookbehind 中使用所述捕获组?
如果你有字符串
"monkeys eat bananas, bananas are terrified of monkeys"
bananas 是第一个匹配的词对,monkeys 是第一个匹配的词。我可以毫无问题地得到猴子
(\w+).*\1 # returns monkeys
但如果我想得到最先匹配的单词,我需要能够做这样的事情
(?<=\1)(\w+)
但是,这失败了,我猜的原因很简单,当评估 lookbehind 时,\1 没有任何意义。是否还有一些我还没有遇到过的正则表达式魔法,可以让我匹配这样的东西?
【问题讨论】:
-
首先匹配你期待什么?
-
我正在尝试获取第一个匹配对,因此在我的示例中,香蕉在猴子之前重复,因此返回了香蕉。
标签: regex