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 - 如何将双字符异常与Python正则表达式匹配?

javascript - 匹配字符串中的独占搜索组

将 HTML 数字表解析为数组的 JavaScript

javascript - HTML5 音频和垃圾收集

javascript - Mysql查询时间问题?

javascript - 函数在文本字段焦点上运行多次

在评估匹配的字符串时执行类似 Ruby 的正则表达式替换的 Pythonic 方法

JavaScript 无法在 Windows Server 2003 上运行

html - 如何解析具有嵌套结构的html文件?

java - JSoup:如何选择包含多个表的页面中的第一个表