javascript - javascript regex .match 只找到一个结果

标签 javascript regex html-parsing

我有这个js代码:

result = subject.match(/<a.*class="gallery_browser_thumbnail".*href="(.+)">/i);

我想获取 html 源上多个 a 标签的 href 但只显示 1 个结果

如果我在模式末尾使用/g ,它会返回整个模式,但我只想要 href 部分 我的意思是 -> (.+) 这部分

这就是我捕获 html 输入的方式:

var subject = String(document
.getElementsByTagName("body")[0].innerHTML);

有什么帮助吗?

最终工作脚本:

    var subject = String(document.getElementsByTagName("body")[0].innerHTML);
var regex = /<a.*class="gallery_browser_thumbnail".*href="(.+)">/gi;
var matched = null;
while (matched = regex.exec(subject)) {
  alert(matched[1]);
}

最佳答案

通过添加惰性量词 ? 更改为惰性匹配:

result = subject.match(/<a.*?class="gallery_browser_thumbnail".*?href="(.+?)">/i);

关于javascript - javascript regex .match 只找到一个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9867455/

相关文章:

python - 在 beautifulsoup 中保存 <br/>

javascript - 有没有ppt模拟的javascript库?

javascript - 无法正确运行 Bing map

arrays - Perl next 如果正则表达式存储在数组中

java - E.164 的正则表达式不起作用

c# - 在 C# 中定位 HTML 的 XPath 内容

php - 如何通过 OAuth 登录以便 cron 作业可以运行

javascript - 将颜色(Leaflet CircleMarker)分配给值范围

正则表达式匹配所有非 http 链接,但不匹配 mailto

python - 如何让 HTMLParser 在解析错误后继续解析?