首页 > 解决方案 > 提取包含特定子字符串的 html 属性

问题描述

我需要在最里面的引号内匹配一个单词(blah)。例子:

<link rel="stylesheet" type="text/css" href="/BLAH/Test/Test/Test.css"> <script src="/blah/Test/Test/Test.js"></script> 

所以我需要它返回:

“/BLAH/Test/Test/Test.css”

“/blah/Test/Test/Test.js”

当我尝试写东西时,它会抓住第一个和最后一个双引号,而不是看到单词 blah 的两个实例。

任何帮助将不胜感激,但除此之外,请解释一下,以便我学习!

标签: regex

解决方案


(<link.*href=['"]([^'"]*).*|<script.*src=['"]([^'"]*).*)

你可以在这里看到它的作用

所以它的作用是首先定位一个链接标签或一个脚本标签。然后它在链接中查找 href 属性,或在脚本中查找 src 属性。然后它会捕获该特定属性的引号中的任何内容。如果您不使用引号来定义属性,这将不起作用。

您也可以使用我在评论中建议的lookbehind 方法,但有人告诉我,lookbehinds 并没有得到很大的支持,所以这样做需要您自担风险。


推荐阅读