这是previous thread的延续,因为那里的答案都没有产生预期的结果。我正在使用正则表达式匹配日期的超级奇怪的行为。我想匹配以下日期:
[month-day]
如:
"[01-23]" // January 23rd is a valid date
"[02-31]" // February 31st is an invalid date
"[02-16]" // valid
"[ 6-03]" // invalid format
这是我的正则表达式:
regex = /\[^[0-1][1-9]\-[0-3][0-9]\]/
我尝试将单个\
和双\
置于括号前面,但似乎没有任何内容可用于匹配这些日期。有什么想法吗?
谢谢!
答案 0 :(得分:4)
正则表达式的问题是在初始方括号之后放置行首锚^
。这不可能发生,因此你的正则表达式永远不会匹配任何东西。
将锚点移动到表达式的开头以解决问题:
regex = /^\[[0-1][1-9]\-[0-3][0-9]\]/
答案 1 :(得分:2)
把#34;行开头"字符^
首先:
regex = /^\[[0-1][1-9]-[0-3][0-9]\]/
在这种情况下,你不需要逃脱中间减去-
。
答案 2 :(得分:1)
您将锚^
放在错误的位置。它必须在最前面,否则永远不会匹配。而且,你的正则表达式甚至不能按你希望的方式工作: