正则表达式CSS完整路径

3
我想要对CSS的完整路径进行正则表达式匹配,例如我有以下内容:
<link rel="stylesheet" href="../assets/myCssFile.css"/>

我想要进行正则表达式匹配:/assets/myCssFile.css 我尝试了这个正则表达式:/(?:href)=("|').*?([\w.]+\.(?:css))\1/gi 但是它会返回这个结果:href="../assets/myCssFile.css" 请问有谁能帮我修正这个正则表达式吗?
顺便说一下:这是一个 AJAX 请求的响应文本,返回了 HTML 页面的字符串。

3
你正在使用JS,其中有许多方法可以操作DOM元素,但仍然想使用正则表达式解析href值?为什么? el.href 应该能够给你所需的路径。 - Aniket Sahrawat
使用 href="([^"]*\.css)"。然后从第一个捕获组中受益。 - revo
@revo 抱歉,当我可以坐出租车时,我不会跑5公里。 - user7780894
1
@roundAbout,进一步说,这取决于你是要赶面试还是想减肥 ;) - Aaron
1
@revo 问题的标签设置不正确。在其他编程语言中正则表达式可能是首选选项,但在JS中使用正则表达式获取元素的属性是大忌,这毫无意义。 - Aniket Sahrawat
2个回答

2

href=\"(.*\.css)"

这将在一个捕获组中返回"../assets/myCssFile.css"

https://regex101.com/r/a44Axz/1

它所做的只是说:

我只对紧跟在“href”之后且是“.css”文件的引号内文本感兴趣。


0

晚了,但也许会对某人有所帮助。:)

另一个匹配css路径的正则表达式: href[ \t]{0,}=[ \t]{0,}"(.{1,}\.css)"

这也可以匹配存在制表符或空格的href=之间或者=和css文件名之间的情况。

此外,如果您想在一个正则表达式中匹配css和javascript文件名,可以使用类似于以下内容的东西: href[ \t]{0,}=[ \t]{0,}"(.{1,}\.css)"|src[ \t]{0,}=[ \t]{0,}"(.{1,}\.js)" 它们由或运算符|组合。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接