我遇到了正则表达式的麻烦。我正在尝试用同一个来验证并从匹配的字符串中提取所有重复的组。
目标:我希望验证并提取特定日期和默认时间的时间。我的格式为:{def_time}[|{day}={time}]
一些例子:
我首先得到了这个正则表达式:
/^(\d{2}:\d{2}(?::\d{2})?)(\|(Mon|Tue|Wed|Thu|Fri|Sat|Sun)=(\d{2}:\d{2}(?::\d{2})?))*$/i
它可以很好地验证,提取默认时间,但只捕获最后一个重复组。 是否有办法捕获所有这些重复的组?
我也尝试过(使用g选项):
/(?:^|\|(Mon|Tue|Wed|Thu|Fri|Sat|Sun)=)(\d{2}:\d{2}(?::\d{2})?)/gi
它将提取所有组但不验证整个字符串以匹配。
答案 0 :(得分:1)
重复捕获组将仅捕获最后一次迭代,因为它会覆盖每个发现的组。所以你必须使用这两个正则表达式,首先验证然后捕获。