我想在同一個正則表達式中匹配多個輸入以捕獲下面的數字。
如果輸入不匹配第一組,那麼我有問題,因爲所有先前的捕獲組仍然捕獲,儘管它不匹配它們組。我相信我需要使用lookaround
聲明,但我不熟悉這些聲明。正則表達式捕獲組流入第二個匹配集
樣品輸入:
wordA 123456
wordA: 123456
wordA : 123456
wordA R123465
wordA: R123456
wordA : R123456
wordB R123465
WordA同時具有可選:
和R
。到目前爲止,我有這樣的:/(?:wordA :?R?(\d+)|wordB R(\d+))/i
。
使用的最後一個樣本輸入提供了這樣的結果:
array
0 => string 'wordB R123456' (length=13)
1 => string '' (length=0)
2 => string '123456' (length=6)
通緝的結果是:
array
0 => string 'wordB R123465' (length=13)
1 => string '123456' (length=6)
任何想法如何解決?
謝謝。我知道這是因爲有兩組,但我想如果第一部分不匹配,那麼其餘部分將被忽略。這是一個錯誤的假設。 – Kim 2012-04-16 13:55:44