【发布时间】:2013-07-25 20:42:20
【问题描述】:
我正在尝试在 Javascript 中匹配一些字符串,例如“[932A]”。精简版是:
'[625A] [625B] [625C]'.match(/\[[0-9]*[A-Z]+\]/)
正在返回一个包含 1 个元素的数组,即第一个命中。原因很明显吗?
【问题讨论】:
标签: javascript regex
我正在尝试在 Javascript 中匹配一些字符串,例如“[932A]”。精简版是:
'[625A] [625B] [625C]'.match(/\[[0-9]*[A-Z]+\]/)
正在返回一个包含 1 个元素的数组,即第一个命中。原因很明显吗?
【问题讨论】:
标签: javascript regex
您需要使用最终的g 术语进行全局正则表达式
'[625A] [625B] [625C]'.match(/[[0-9]*[A-Z]+]/g)
【讨论】:
您需要指定要使用全局标志获取所有匹配项。例如(注意结尾 g):
/[0-9]/g
当方括号不用于分隔字符类时,您还需要转义方括号。例如:
/\[[0-9]+\]/
匹配方括号内的一个或多个数字。
【讨论】:
是的,您只需在正则表达式中添加全局标志。这是通过在其末尾添加一个“g”来完成的。您生成的正则表达式应如下所示:
/[[0-9]*[A-Z]+]/g
【讨论】: