1
我遇到命名捕獲組的問題並重新使用它們。看起來像我命名捕獲組A時,它首先捕獲類似「asd」的東西,然後使用\ k並嘗試再次使用捕獲組A的表達式,但它不起作用,因爲它不匹配正則表達式I originaly在A組中寫道,但是它試圖匹配先前匹配的內容,即「asd」。正則表達式:再次使用捕獲組
所以,如果我有這樣的:
^(?<A>(?:a|s|d))\k<A>$
我鍵入:
aa
這工作,因爲捕獲組的第一個匹配的字母和\k<A>
現在也在尋找一個。
但是,在as
中鍵入不起作用,因爲第一個匹配a和\k<A>
正在尋找另一個a。
我想要做的是再次使用捕獲組A的正則表達式本身。所以我想\k<A>
= (?:a|s|d)
。
這裏有什麼問題,有沒有辦法解決它?
謝謝!
您正在尋找[遞歸](http://www.regular-expressions.info/recurse.html)。不幸的是,這不是一個廣泛支持的功能。我不認爲posix-ere支持它。 –
@Rawing是的,這工作。我使用\ g'name'來代替,但是我的實際正則表達式還存在其他一些問題,但現在一切正在運行。提交這個答案作爲答案,我會給你的觀點。 – Piwwoli
如果您可以使用'\ g'name'',posix-ere標籤在這裏是錯誤的。什麼是環境? PHP?紅寶石? –