javascript模式匹配仅返回第一个匹配

时间:2013-07-25 19:11:58

标签: javascript regex

我正在尝试在Javascript中匹配某些字符串,例如'[932A]'。精简版是:

'[625A] [625B] [625C]'.match(/\[[0-9]*[A-Z]+\]/)

返回一个包含1个元素的数组,第一个命中。这显然是为什么?

3 个答案:

答案 0 :(得分:2)

您需要使用最终g字词

来执行全局正则表达式
 '[625A] [625B] [625C]'.match(/[[0-9]*[A-Z]+]/g)

答案 1 :(得分:2)

您需要指定要使用全局标志获取所有匹配项。例如(注意结尾g):

/[0-9]/g

当它们不用于分隔字符类时,您还需要转义方括号。例如:

/\[[0-9]+\]/

哪个匹配方括号内的一个或多个数字。

答案 2 :(得分:1)

是的,您只需在正则表达式中添加全局标志即可。这是通过在它的末尾添加'g'来完成的。生成的正则表达式应如下所示:

/[[0-9]*[A-Z]+]/g