这是我的Regex用类来获取所有标签:
preg_match_all('/<\s*\w*\s*class\s*=\s*"?\s*([\w\s%#\/\.;:_-]*)\s*"?.*?>/',file,$matches);
它匹配所有类似<a class="abc">
问题是,如果任何标记在课前包含额外属性,则此正则表达式无法获取它。
例如:<a id="fig_3_1" class="figure-contents">
我希望<a class="figure-contents">
忽略fig_3_1
有任何想法要排除吗?
答案 0 :(得分:0)
<\s*\w*.*?\s*class\s*=\s*"?\s*([\w\s%#\/\.;:_-]*)\s*"?.*?>
可能这个有效 但你最好使用simple_html_dom
答案 1 :(得分:0)
看看this amazing SO post并重新考虑。
您最有可能更好地使用html解析器。您可以使用DOM模型执行此操作。
下面将使用 的简单示例。
$dom = new DOMDocument;
$dom->loadHTML($html);
$images = $dom->getElementsByTagName('img');
foreach ($images as $image) {
$image->setAttribute('src', 'http://example.com/' .$image->getAttribute('src'));
}
$html = $dom->saveHTML();