我想从 html 标记中提取作者姓名。标签如下所示:
<a href="http://somewhere.com"> Manfred </a>
但如果名称太长,它看起来像这样:
<a title="floormanager004" href="http://somewhere.com"> floormanage... </a>
我有以下正则表达式来涵盖这两种情况:
~<a.*(title="(.{2,50})".*|>(.*))</a>~Usi
这在第二种情况下工作正常,返回一个二维数组,如下所示:
array(2) {
[0]=>
string "title="floormanager004" href="http://somewhere.com"> floormanage... "
[1]=>
string "floormanager004"
}
但对于第一种情况,数组包含一个额外的空字段:
array(2) {
[0]=>
string "> Manfred "
[1]=>
string ""
[2]=>
string " Manfred "
}
为什么会出现这个字段以及如何摆脱它?
免责声明: 我知道当使用正则表达式来解析 html 时,你会有一段 baaaaad 时间,你永远不应该这样做,但在我的情况下,它被证明比 XPATH 等更快。请不要对此发表评论。