我只是想做的是采用以下代码:
$Anchors = '<a href="#" class="test1"><div class="test2"><a href="#" class="test3"><div class="test4">'
获取最后一个锚标记的class属性的值,在本例中为“test3”。到目前为止,我有这个:
if(preg_match('/(<a\s.*)(class="|\')([^-\'"]*)("|\')?.*?([^>])/i',$Anchors,$matches)){
但显然它没有做我想做的事,有什么帮助吗?
答案 0 :(得分:2)
这个正则表达式将:
.*<a\b(?=\s) # capture the open tag
(?=(?:[^>=]|='[^']*'|="[^"]*"|=[^'"][^\s>]*)*?\sclass=['"]([^"]*)['"]?) # capture the src attribute value
(?:[^>=]|='[^']*'|="[^"]*"|=[^'"\s]*)*"\s?\/?> # get the entire tag
此处的实例:http://www.rubular.com/r/G5F6AD5UyL
示例文字
请注意,最后一个标签有一个困难的边缘情况
<a href="#" class="test1"><div class="test2">
<a onmouseover=' class="NotTheClass" ; funClassRotator(class) ; ' class="test3" href="#" ><div class="test4">
捕获论坛
[0][0] = <a href="#" class="test1"><div class="test2"><a href="#" onmouseover=' class="NotTheClass" ; funClassRotator(class) ; ' class="test3">
[0][1] = test3
答案 1 :(得分:1)
例如使用simplehtmldom
foreach($html->find('a') as $element)
echo $element->class . '<br>';