捕获随机重复次数

时间:2012-09-08 13:13:26

标签: php pcre

我希望从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 />", 

但我宁愿只使用一个正则表达式。这可能吗?

最好的问候。

3 个答案:

答案 0 :(得分:1)

使用第二个捕获组和一些非捕获魔法:

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

?:使得外部群组无法捕获,因此您将只留下isbn部分的捕获。

答案 1 :(得分:0)

你可以explode()

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

请注意,假设<br />标记的格式发生变化(<br><br/>),这可能会中断。

答案 2 :(得分:0)

我相信这不可能。作为一个例子,我想要做的是使用一个简单的正则表达式从字符串“aaaaa”捕获数组(a,a,a,a,a),随机数为'a'。 我会关闭它,对不起努力的人。