2013-03-07 39 views
3
(?:\/(\w+?=\/)\/(\w+))* 

有沒有什麼辦法從組內檢索反向引用?在上面的表達式中,沒有引用(?:)會阻止整個組捕獲反向引用?從重複組生成反向引用

試圖匹配,例如: /hello/how/are/you.../today和捕捉

+0

'\ w'不一定被'['']'包圍「。我很肯定在'?='之前應該有一個左括號'(經過適當的修改)。 – Dukeling 2013-03-07 21:02:50

+0

我添加\ w只是爲了更容易閱讀。編輯,以便更容易閱讀thx – 2013-03-07 21:04:24

+0

最快的解決方案是加倍'/' – BlackBear 2013-03-07 21:14:28

回答

2

之間的「/」的所有值是否有任何辦法從組內反向引用?

是的。組不在層次結構中解釋。例如(a(b))只有兩個組,一個和兩個,可以(後面)引用。在參考文獻方面,它等於(a)(b)。引用的順序只是由正則表達式模式中的組順序決定的(由組的開始決定)。一個團體是另一個團體的一部分並不能改變這一事實。

在上面的表達式中,no-reference(?:)是否阻止整個組捕獲反向引用?

不。它只能防止標記爲非捕獲組的組捕獲(返回)引用。嵌套組不受影響,將被捕獲,除非它們也被標記爲非捕獲組。

+0

那麼它只花了我幾個月的時間來標記這個但是爲了答案。正則表達式的例子往往很弱,所以每當我遇到一些複雜的測試或stackoverflow複雜的。 – 2013-06-13 13:50:33

+0

非常感謝標記:) – 2013-06-14 14:28:50