/(?:富){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