正则表达式在具体单词

时间:2017-03-21 15:07:17

标签: javascript regex

<a href="">ABCD</a>
<a href="text1">ABCD</a>
<a href="text2">ABCD</a>

我需要js regex才能在“ABCD”,“text1”而不是“text2”之后找到第一个href。

2 个答案:

答案 0 :(得分:2)

你不是很具体但是这个

>\w+<[^h]*href="([^"]*)"

应该接近你想要的。

注意:您希望得到的不是整个匹配,而是第一个捕获组。

Live demo(点击工具 - &gt;列表检查群组)

答案 1 :(得分:2)

根据@ G0dsquad的建议,我已经发布了一个正式答案。我在下面使用的正则表达式模式是:

^.*?ABCD.*?href="(.*?)".*$

&#13;
&#13;
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;
&#13;
&#13;

请注意,我删除了输入中的换行符,将所有内容塞入一行。但添加换行符不应该改变正则表达式的行为。另请注意,Regex101虽然是一个非常有用的工具,但似乎将正则表达式应用于每个单独的行,这不是您的用例。