我有一些文字
I01:00:00:05
I01:00:00:04
I01:00:00:03
I01:00:00:02
I01:00:00:01
是否有可以找到每个人的正则表达式?
我试过了:
var locs = txt.match(/(([A-Z]\d\d\:\d\d\:\d\d\:\d\d)+)+/);
它找到了匹配的第一个模式的5个副本。
有没有办法让它们中的每个都有一个数组?
由于
答案 0 :(得分:2)
如果你在末尾包含'g'标志它应该有效。
var locs = txt.match(/(([A-Z]\d\d\:\d\d\:\d\d\:\d\d)+)+/g);
答案 1 :(得分:0)
你只是在你的正则表达式上缺少g标志,它会找到与模式匹配的所有出现。 像这样:
var locs = txt.match(/(([A-Z]\d\d\:\d\d\:\d\d\:\d\d)+)+/g);
当然,如果该模式实际上是好的;)
答案 2 :(得分:0)
编写正则表达式以匹配单个实例,并使用全局说明符/g
获取匹配集合(注意对正则表达式的修改):
var locs = txt.match(/([A-Z]\d\d\:\d\d\:\d\d\:\d\d)/g);
答案 3 :(得分:0)
确实在这种情况下,“+”符号不是必需的:
var locs = txt.match(/[A-Z]\d\d\:\d\d\:\d\d\:\d\d/g);
locs
将为["I01:00:00:05", "I01:00:00:04", "I01:00:00:03", "I01:00:00:02", "I01:00:00:01"]
。