如何在字符串中查找所有正则表达式匹配

时间:2016-02-08 12:03:48

标签: javascript regex

这可能太简单了,无法在网上找到,但我找到答案时遇到了问题。

我得到字符串作为http响应文本,其中包含我想逐个抓取的子字符串以进一步处理。它的相对URL。

例如:

var string = "div classimage a hrefstring1.png img idEMIC00001 he19.56mm wi69.85mm srcstring1.png  separated by some html         div classimage a hrefstring2.png srcstring2.png div separated by some html many such relative urls";
var re = new RegExp("[a-z]{5,10}[0-9].png");
var match = re.exec(string)
WScript.Echo (match);

这给了第一场比赛。我希望逐个获得所有收藏品。我正在使用Jscript。我是javascript的新手。

在答案之后我尝试了这个。

var string = "div classimage a hrefstring1.png img idEMIC00001 he19.56mm wi69.85mm srcstring1.png  separated by some html         div classimage a hrefstring2.png srcstring2.png div separated by some html many such relative urls";
var re = new RegExp("[a-z]{5,10}[0-9].png", "g");
var match = re.exec(string)
WScript.Echo (match);

但没有运气。

3 个答案:

答案 0 :(得分:5)

使用'g'进行全局搜索,使用match进行所有匹配: -

var string = "div classimage a hrefstring1.png img idEMIC00001 he19.56mm wi69.85mm srcstring1.png  separated by some html         div classimage a hrefstring2.png srcstring2.png div separated by some html many such relative urls";

var re = new RegExp("[a-z]{5,10}[0-9].png", 'g');

var matches = string.match(re);

for(var i = 0; i < matches.length; i++){
    console.log(matches[i]);
}

答案 1 :(得分:3)

这可以解决您的问题:

var re = new RegExp("[a-z]{5,10}[0-9].png", "g");

&#34; g&#34;代表全局,它匹配字符串中出现的所有内容

答案 2 :(得分:1)

只是做到了

var match = string.match(re)

而不是

var match = re.exec(string);

其余的代码似乎没问题。