我需要获取 html 标签之间的名称。
<div class="from"><span class="profile fn">firstnamed familyname</span></div>
到目前为止,我根据其他有相同问题的人的例子进行了尝试:
preg_match(";from"><span class="profile fn>(.?)</span></div>;", $text, $match)
但它不起作用。
正确的方法是什么?
非常感谢。
我需要获取 html 标签之间的名称。
<div class="from"><span class="profile fn">firstnamed familyname</span></div>
到目前为止,我根据其他有相同问题的人的例子进行了尝试:
preg_match(";from"><span class="profile fn>(.?)</span></div>;", $text, $match)
但它不起作用。
正确的方法是什么?
非常感谢。
preg_match(";from"><span class="profile fn>(.?)</span></div>;", $text, $match)
...应该触发这个:
解析错误:语法错误,意外的 '<'
除此之外:
您寻找一个不在原始文本中的未封闭属性:
class="profile fn
对比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 时是不可能正确的。
这:
preg_match(";from"><span class="profile fn>(.?)</span></div>;", $text, $match)
在语法上不正确,您必须转义双引号:
preg_match(";from\"><span class=\"profile fn>(.?)</span></div>;", $text, $match)
您需要转义特殊字符(例如引号):
preg_match(";from\"><span class\=\"profile fn>(.?)</span></div>;", $text, $match)