捕获随机重复次数


Capturing random number of repetitions

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

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

致以最良好的问候。

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

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

?:使外部组不被捕获,因此只剩下isbn部分的捕获。

您可以只使用explode()

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

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

我认为这是不可能的。举个例子,我想做的是使用一个简单的正则表达式从字符串"aaaaa"中捕获数组(a,a,a、a,a),随机数为‘a’。我会关闭它,为你们的努力感到抱歉。