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 />", 

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

此致。

4

3 回答 3

1

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

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

使?:外部组不捕获,因此您将只捕获 isbn 部分。

于 2012-09-08T13:16:42.740 回答
0

我相信这是做不到的。例如,我想做的是使用简单的正则表达式从字符串“aaaaa”中捕获数组(a,a,a,a,a),并带有随机数的“a”。我会关闭它,对不起大家的努力。

于 2012-09-10T14:35:40.713 回答
0

你可以explode()

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

请注意,假设<br />标签的格式更改(<br>, <br/>),这可能会中断。

于 2012-09-08T13:16:43.217 回答