我正在寻找可以匹配两个日期字符串的正则表达式。我在指定“或”表达式时遇到问题:/\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"]
最佳答案
使用 (?:...)
形式的非捕获组,而不是 (...)
形式的捕获组。所以:
"2007-01-XX 2008-01-01".scan(/\d{4}-\d{2}-(?:XX|\d{2})/)
关于ruby - 如何进行 'or' 匹配但不捕获正则表达式中的 'or' 部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9689450/