我有一个问题,我正在搜索HTML字符串中的属性。下面是一个正则表达式,它可以工作得很好,但我想只获取唯一的结果。当然,我可以对结果数组应用一些过滤器,但我认为这可以通过纯正则表达式实现。在这种情况下,“class”被返回了两次,但我只想要一次。期望输出:['class','data-text'],而不是['class','data-text','class']。请参考链接:https://regex101.com/r/UqCuJS/1
const html = `<div class="foo">
<span data-text="Some string" class="bar"></span>
</div>`
console.log(html.match(/[\w-:]+(?=\s*=\s*".*?")/g))
javascript
代码吗?你是使用.split()
还是.match()
来获取匹配项数组? - guest271314/[\w-:]+(?=\s*=\s*"[^"]*")/g
并使用.filter()
。 - Wiktor Stribiżew