You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP正则表达式提取HTML中的CSS文件名

如何使用PHP正则表达式提取HTML中的CSS文件名

嘿,我明白你想从HTML里的{% INCLUDECSS %}标签里提取出CSS文件名的需求啦,咱们一步步来梳理。

首先先看你的目标字符串:

{% INCLUDECSS '@cms_blog/blog.css?hash=8434bb8f' %}

你已经尝试用这段PHP正则代码来匹配:

preg_match_all("/{% INCLUDECSS '@(?<basename>(.*?))(\?hash=.*?)' %}/m", $string, $match);

执行这段代码后,得到的输出大概是这样的:

array(5) {
  [0] => array(1) {
    [0] => string(51) "{% INCLUDECSS '@cms_blog/blog.css?hash=8434bb8f' %}"
  }
  ["basename"] => array(1) {
    [0] => string(18) "cms_blog/blog.css"
  }
  // 其他匹配组的内容这里省略
}

这里$match['basename'][0]就是你要的完整CSS文件名啦。不过我可以给你两个小优化建议,让正则更健壮:

  • 允许INCLUDECSS和单引号之间有任意空格:比如标签写成{% INCLUDECSS '@xxx.css' %}(多了空格)也能匹配,只需要把正则里的INCLUDECSS改成INCLUDECSS\s*
  • 兼容后面的任意参数:不止是hash,如果后面有其他参数也能正确匹配,把\?hash=.*?改成\?.*?

优化后的正则代码如下:

preg_match_all("/{% INCLUDECSS\s*'@(?<basename>(.*?))(\?.*?)?' %}/m", $string, $match);

这样不管标签里有没有空格、后面参数是什么,都能准确提取出你需要的CSS文件名啦。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.09 03:03:06