比方說,我們有以下的正則表達式:靜態捕獲組?
((a(.+?)c ?)+)
這將匹配:
abc acc aac
我想要做什麼:
((a(.+?)c ?)(a\3c ?)*)
因此,我將只匹配
abc abc abc
或
acc acc acc
而不是項目#2(ABC ACC AAC)
...但是,如果沒有反向引用。
基本上,我希望#1(。+?)中的第三個捕獲組始終匹配任何第一個匹配。
這可能嗎?
爲了讓事情變得更多,這將需要在JavaScript的正則表達式引擎中工作。
你想要一個沒有**反向引用的正則表達式**?因爲它似乎反向引用是你需要的:'((a(。+?)c?)(a(。+?)c?)(a \ 3c?)*)' – acdcjunior
是的,js支持反向引用和大多數其他perl正則表達式功能,它基於... – dandavis
@dandavis剛剛測試過,我不知道這個!我一直認爲它在_JavaScript_中不起作用。你現在已經爲我打開了一個全新的_RegExp_世界(不是我實際上在字符串操作中使用它) –