我需要获取html标签之间的名称。
<div class="from"><span class="profile fn">firstnamed familyname</span></div>
到目前为止,我根据其他人的例子尝试了同样的问题:
preg_match(";from"><span class="profile fn>(.?)</span></div>;", $text, $match)
但它不起作用。
正确的方法是什么?
非常感谢。
答案 0 :(得分:1)
preg_match(";from"><span class="profile fn>(.?)</span></div>;", $text, $match)
......应该触发这个:
解析错误:语法错误,意外'&lt;'
除此之外:
您寻找一个不在原始文本中的未闭合属性:
class="profile fn
vs class="profile fn"
您寻找零个或一个字符:
.?
修正了正则表达式:
$text = '<div class="from"><span class="profile fn">firstnamed familyname</span></div>';
preg_match(';from"><span class="profile fn">(.*)</span></div>;', $text, $match);
var_dump($match);
当然,这可能会破坏大型HTML文档(稍后会有另一个</span></div>
位)。当用于解析HTML时,正则表达式是不可能的。
答案 1 :(得分:0)
这:
preg_match(";from"><span class="profile fn>(.?)</span></div>;", $text, $match)
在语法上是不正确的,你必须转义双引号:
preg_match(";from\"><span class=\"profile fn>(.?)</span></div>;", $text, $match)
答案 2 :(得分:0)
您需要转义特殊字符(例如引号):