如何使用正则表达式查找 css 文件


How to find css files with regex

我需要在一段带有正则表达式的代码中找到所有 css 引用

假设我有:

<link rel="stylesheet" type="text/css" href="mystyle.css">

比赛结果应mystyle.css 目前,我只有与整个参考匹配的~href=''.*'.css.*''~,因此不行。

Karthik的回答是"几乎"正确的。

我在他的示例中做了一个"小"更改,现在还捕获了以下网址:

http://blah.com/style.css

修改后的正则表达式如下:

~(?<=href=")[^"]+'.css~
您可以使用

以下内容:

~(?<=href=")[^."]+'.css~

查看演示

没有充分的理由为此使用正则表达式。将 HTML 文件作为 DOM 文档读取,并使用 Xpath 提取样式表引用:

<?php
$doc = new DOMDocument();
$doc->loadHTMLFile("test.html");
$xpath = new DOMXpath($doc);
$stylesheets = $xpath->query("//link[@rel='stylesheet']/@href");
if ($stylesheets->length == 0) {
    echo "nothing found!'n";
} else {
    foreach ($stylesheets as $stylesheet) {
        echo "found stylesheet: " . $stylesheet->nodeValue . "'n";
    }
}
?>

也就是说,对于文档中rel属性stylesheet的每个link元素(//link部分)([@rel='stylesheet']),提取href属性(/@href)。