/(?:富){0}酒吧/
我看到这样的事情在另一个答案。起初我认为“应该是什么”,但是,“好的可能有意义,有点负面的背后”,所以在bar
之前不允许Foo
,但这是行不通的。
你可以看到这个here on Regexr:它只匹配bar
,但它也匹配Foobar
中的bar
。
当我添加锚点该行的开始:
/^(?:Foo){0}bar/
它像我期望的那样。它仅匹配bar
而不匹配Foobar
中的bar
。
但是,这是完全一样的行为,如果我只使用/bar/
或/^bar/
。
量词{0}
只是无用的副作用,还是真的有一个有用的行为呢?
这真棒,Kobi。这只适用于具有子例程但不包含'(?(DEFINE))'的引擎,我认为这只是Ruby,可能还有带'regex'模块的Python。在Ruby中测试:'(?:(Foo)){0} bar \ g <1>'+1000! – zx81
如果有人感兴趣,不要使用'regex'模块在Python中工作。但想出了这个替代方案,它的作用:'(?:(Foo)$ ^)?bar(?1)' – zx81