2012-09-08 104 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/>)的格式。