什么是匹配方括号的正则表达式? (第二部分)

时间:2015-04-01 12:52:21

标签: regex

这是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]\]/

我尝试将单个\和双\置于括号前面,但似乎没有任何内容可用于匹配这些日期。有什么想法吗?

谢谢!

3 个答案:

答案 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)

您将锚^放在错误的位置。它必须在最前面,否则永远不会匹配。而且,你的正则表达式甚至不能按你希望的方式工作:

https://regex101.com/r/tV8hH7/1