2015-04-01 88 views
1

這是previous thread的延續,因爲沒有任何答案產生預期結果。我正在使用正則表達式匹配日期,以獲得超級奇怪的行爲。我想匹配的日期如下:匹配方括號的正則表達式是什麼? (Part II)

[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]\]/ 

我試圖把兩個單\人和雙人\盈括號,但似乎沒有工作匹配這些日期。有任何想法嗎?

謝謝!

+1

你有什麼期望了''^做? – jwodder 2015-04-01 12:54:01

+0

要匹配表達式 – 2015-04-01 12:54:55

+0

中的第一個括號它不會這樣做。在這種情況下,它將被視爲文字插頁。我認爲你實際上的意思是這個/^\ [[0-1] [1-9] \ - [0-3] [0-9] \]/ – rhuffstedtler 2015-04-01 12:55:49

回答

4

與您的正則表達式的問題是在最初的方括號之後放置起始行錨點^。這不可能發生,所以你的正則表達式不會匹配任何東西。

移動錨點到你的表達式的開頭來解決這個問題:

regex = /^\[[0-1][1-9]\-[0-3][0-9]\]/ 
2

把「行首」字^第一:

regex = /^\[[0-1][1-9]-[0-3][0-9]\]/ 

而且你也不需要在這種情況下逃避中間減去-

1

您將錨^放在錯誤的地方。它必須在最前面或者它永遠不會匹配。此外,你的正則表達式甚至不工作,你希望它的工作方式:

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

+0

大聲笑我沒有完成它的其餘部分! – 2015-04-01 12:56:57

+1

啊好的。祝你好運,除非你也想得到幫助 – m0meni 2015-04-01 12:57:52