我正在寻找一个可以匹配日期字符串的正则表达式.我在指定'或'表达式时遇到问题:/\d{4}-\d{2}-(XX|\d{2})/不起作用,因为它只返回XX部分:
"2007-01-XX 2008-01-01".scan(/\d{4}-\d{2}-XX/)
["2007-01-XX"]
"2007-01-XX 2008-01-01".scan(/\d{4}-\d{2}-\d{2}/)
["2008-01-01"]
Run Code Online (Sandbox Code Playgroud)
使用表单的非捕获组(?:...)而不是表单的捕获组(...).所以:
"2007-01-XX 2008-01-01".scan(/\d{4}-\d{2}-(?:XX|\d{2})/)
Run Code Online (Sandbox Code Playgroud)