使用正则表达式返回多个标记的出现次数

时间:2012-02-04 03:46:53

标签: php regex

我正在尝试使用正则表达式将所有<div><span>标记捕获到PHP数组中。

获取单个标记的代码是:

[#<div>(.*?)</div>#i]

Single不是问题,但是我试图一次选择两个标签。我的尝试如下:

[#<div>?<span>?(.*?)</div>?</span>?#i]

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

这样的正则表达式是否适用于您的目的?

[#<(td|span)>(.*?)</(td|span)>#i]

第一个和第三个捕获组将告诉您类型,第二个捕获组将包含您要捕获的信息。不确定你的意思是“一次选择两个标签”但是......可能是嵌套的?

http://rubular.com/r/ojYJjXFMZt

正如Ranhiru Cooray建议的那样,使用正确的解析器可能是要走的路。