2017-02-09 14 views
2

我想有一個正則表達式如下相符:正則表達式匹配一些托架項目符號點

(1)喂(2)世界

欲環爲2個匹配,一種是(1 )你好,另一個是(2)世界 爲每場比賽,(1)是第一組「你好」是第二個

我試過(\(\d+\))(.*?)但失敗。

+1

請你精確的環境/正則表達式的味道?你使用正則表達式的代碼是什麼?順便說一句,在大多數情況下,你可能只是用'(?= \(\ d + \))'分開,或者你需要一定有2個捕獲組? –

回答

2

如果您需要使用匹配方法來分別訪問了(n)hello值,你需要使用正則表達式像

(\(\d+\))([^(]*(?:\((?!\d+\))[^(]*)*) 

regex demo。上面的模式是展開的相當於(?s)(\(\d+\))((?:(?!\(\d+\)).)*)

詳細

  • (\(\d+\)) - 捕獲組1:(,1+位數,)
  • ([^(]*(?:\((?!\d+\))[^(]*)*) - 捕獲組2:
    • [^(]* - 0+字符以外(
    • (?:\((?!\d+\))[^(]*)* - 零個或多個順序CES的:
      • \((?!\d+\)) - 字面(沒有隨着1+數字和)
      • [^(]* - 比(其他0+字符。
+0

嗨你是如何捕獲多個匹配像循環? –

+0

@AbdulHameed:對不起,我沒有得到像循環*部分那樣的捕獲多個匹配。我的模式解釋中有什麼不清楚嗎?請讓我知道,這樣我可以澄清。 –

+0

我從這個鏈接http://www.rexegg.com/regex-capture.html#spawn_groups看到我們不能自動生成捕獲組......但是你能夠做到這一點。這就是我想知道的.. –