1

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

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

正在返回一个包含 1 个元素的数组,即第一个命中。为什么很明显?

4

3 回答 3

2

您需要使用最终g术语进行全局正则表达式

 '[625A] [625B] [625C]'.match(/[[0-9]*[A-Z]+]/g)
于 2013-07-25T19:13:57.213 回答
2

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

/[0-9]/g

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

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

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

于 2013-07-25T19:13:57.537 回答
1

是的,您只需要在正则表达式中添加全局标志。这是通过在其末尾添加一个“g”来完成的。您生成的正则表达式应如下所示:

/[[0-9]*[A-Z]+]/g
于 2013-07-25T19:13:54.633 回答