我的數據:正則表達式:重複組只獲得了最後一組
stack: 123 overflow: 456 others: - st: 7 ov: 7 againothers: - m: 11 t: 12 - m: 13 t: 14 - m: 15 t: 16 - st: 8 ov: 8 againothers: - m: 17 t: 18 end: 42
我的正則表達式:
^stack: (\d+) overflow: (\d+) others: ?(.+) end: (\d+)$
的組相匹配的:到目前爲止
1: 123
2: 456
3: - st: 7 ov: 7 againothers: - m: 11 t: 12 - m: 13 t: 14 - m: 15 t: 16 - st: 8 ov: 8 againothers: - m: 17 t: 18
4: 42
好。在第3組,然後運行下面的正則表達式:
^(?:- st: (\d+) ov: (\d+) againothers: ?(?: - m: (\d+) t: (\d+))+)+$
不工作的所有(爲什麼?),所以我刪除^
和$
和它匹配。隨後的比賽看起來是這樣的:
1: 7 // <-- Works as expected.
2: 7
3: 15 // <-- Here I'd expected 2 groups matching: (13,14), (15,16)
4: 16 // <-- but I'm only getting the last group.
1: 8 // <-- This works and the remainder is as expected.
2: 8
3: 17
4: 18
我似乎缺少「13,14」相匹配的一個或多個(?: - m: (\d+) t: (\d+))+
組合我內心的組。
在線測試:http://gskinner.com/RegExr/?33urf,萬一得到屠殺,我的數據有:- st: 7 ov: 7 againothers: - m: 11 t: 12 - m: 13 t: 14 - m: 15 t: 16 - st: 8 ov: 8 againothers: - m: 17 t: 18
和正則表達式是:(?:- st: (\d+) ov: (\d+) againothers: ?(?: - m: (\d+) t: (\d+))+)+
。我看過http://www.regular-expressions.info/captureall.html,我認爲我的問題與此有關?任何提示/指針/幫助,以便我可以匹配一個或多個m:t:組合?
你必須更深入! – 2013-02-28 15:53:55