<a href="">ABCD</a>
<a href="text1">ABCD</a>
<a href="text2">ABCD</a>
我需要js regex才能在“ABCD”,“text1”而不是“text2”之后找到第一个href。
答案 0 :(得分:2)
你不是很具体但是这个
>\w+<[^h]*href="([^"]*)"
应该接近你想要的。
注意:您希望得到的不是整个匹配,而是第一个捕获组。
Live demo(点击工具 - &gt;列表检查群组)
答案 1 :(得分:2)
根据@ G0dsquad的建议,我已经发布了一个正式答案。我在下面使用的正则表达式模式是:
^.*?ABCD.*?href="(.*?)".*$
var input = "<a href=\"\">ABCD</a><a href=\"text1\">ABCD</a><a href=\"text2\">ABCD</a>";
var regex = /^.*?ABCD.*?href="(.*?)".*$/g;
var match = regex.exec(input);
console.log(match[1]);
&#13;
请注意,我删除了输入中的换行符,将所有内容塞入一行。但添加换行符不应该改变正则表达式的行为。另请注意,Regex101虽然是一个非常有用的工具,但似乎将正则表达式应用于每个单独的行,这不是您的用例。