我正在尝试使用正则表达式在html文档中选择特定行。
我正在寻找选择以<link
开头且在href
中不包含字符../
这是我拥有的html的一部分
<script type="text/javascript" src="/js/IP_Master_PT_RTL.master.js"></script>
<link rel="stylesheet" type="text/css" href="../global.design-editor.com/v8/main.min1024.css?v=_STAGING-Publisher_20180327.1" />
<link rel="stylesheet" type="text/css" href="../fonts.googleapis.com/earlyaccess/alefhebrew.css" />
<link rel="stylesheet" type="text/css" href="ad-systems368c.css?v=4701716615" />
这是我到目前为止所做的:
<link[^\*]*?href=[^\*]*?"[^..]*
我越来越近了,但我想选择整个标签,而没有选择其他标签。
我刚刚开始学习正则表达式,所以我对此很陌生。
答案 0 :(得分:3)
使用浏览器中的JavaScript,您只需查找所有<link>
元素,然后根据href
属性对其进行过滤
let allLinks = document.querySelectorAll('link');
let filteredLinks = Array.from(allLinks)
.filter(el => el.getAttribute("href").startsWith("../") == false);
console.log(filteredLinks);
<script type="text/javascript" src="/js/IP_Master_PT_RTL.master.js"></script>
<link rel="stylesheet" type="text/css" href="../global.design-editor.com/v8/main.min1024.css?v=_STAGING-Publisher_20180327.1" />
<link rel="stylesheet" type="text/css" href="../fonts.googleapis.com/earlyaccess/alefhebrew.css" />
<link rel="stylesheet" type="text/css" href="ad-systems368c.css?v=4701716615" />
答案 1 :(得分:0)
const links = [...document.getElementsByTagName('link')];
const newLinks = links.filter(link => !link.outerHTML.includes('../'))
console.log(newLinks)
答案 2 :(得分:-2)
也许他/她正在分析文件,所以他/她需要ragex。 所以这是我的解决方案...
我也是ragex的新手,但这可能对您有用。
<link\s*.*href\=\"[^(\.\.\/)].*\".*/>
还要检查this ragex builder,玩得开心。