2012-09-08 36 views
0

我希望從html字符串中捕獲隨機數的isbn數字。一個這樣的字符串可能是捕獲隨機重複次數

978-2-7560<br />978-2-84055<br />978-2-84789<br />978-2-906187<br /> 

理想情況下,我會用一個正則表達式來捕獲每個重複與preg_match_all分開。當然,我可以捕捉整個字符串,像這樣:

(([\d-]{7,}<br />)+) 

然後通過

"<br />", 

分裂,但我寧願只使用一個正則表達式。那可能嗎?

此致敬禮。

回答

0

我相信這是做不到的。作爲一個例子,我想要做的是從字符串「aaaaa」中捕獲數組(a,a,a,a,a),使用一個簡單的正則表達式和隨機數字'a'。 我會關閉它,對於努力的人抱歉。

1

使用第二捕獲組和一些非捕捉魔:

(?:([\d-]{7,})<br />)+ 
    ^--inner ^--inner 
^--outer   ^--outer 

?:使得外組非捕獲,所以你會留下只有ISBN部分的捕獲。

+0

首先,感謝您的非捕獲提示。另一件事我不知道。但它不會做我想做的事,即捕獲多個匹配項。 – pouzzler

0

您可以只需explode()

explode("<br />", $string); 

注意,這可能會破壞假設的<br />標籤的變化(<br><br/>)的格式。