0
我有一些字符串这样的:正则表达式返回带有下划线组未定义
123a-124b.csv
123a_124b.csv
123-124b.csv
123_124.csv
我需要的数字只能用正则表达式匹配,所以我已经试过这两个正则表达式使用javascript:
/^(\d+)\w*(?:.(\d+)\w*)?\.CSV$/i
/^(\d+)\w*(?:[-|_](\d+)\w*)?\.CSV$/i
正在运行exec
对此给出正确结果-
但_
匹配,但返回undefined for the second named group
。实际上,第一个正则表达式可以与除_
之外的任何字符一起使用。例如123a=123b.csv
工作正常。
任何想法有什么不对。
一些更多的例子输出:
var TEST = /^(\d+)\w*(?:.(\d+)\w*)?\.CSV$/i;
> undefined
TEST.exec('123a_123b.csv')
> ["123a_123b.csv", "123", undefined]
TEST.exec('123a+123b.csv')
> ["123a+123b.csv", "123", "123"]
TEST.exec('123a=123b.csv')
> ["123a=123b.csv", "123", "123"]
TEST.exec('123a?123b.csv')
> ["123a?123b.csv", "123", "123"]