2016-07-24 42 views
-5

我試圖找到一個正則表達式將匹配在以下格式的日期:3 - 07月1630軍16這個日期格式的正則表達式?

我已經試過這個表達式首先:

/[0-9]{1,}-[a-zA-Z]{3}-[0-9]{1,}/g 

但它也匹配日期如947-UfO-104,這不是我想要的東西。
首先,我一個月有:

/[0-9]{1,}-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-[0-9]{1,}/g 

現在,這一年是好的,因爲它可以是任何數字。
一天的一部分,我曾嘗試:

/([1-9]|1[0-9]|2[0-9]|30|31)-(Jan|Feb.../g 

現在,我的問題是,給定當這樣的事情:73月 - 2015年
它匹配:3月 - 2015年

我試圖確保該日期之後是一個非數字字符這樣的:

/[^0-9]{1,}([1-9]|1[0-9]|2[0-9]|30|31)-(Jan|Feb.../g 

但隨後,當日期在字符串的開始處,它沒有捕獲它(因爲它沒有跟着任何字符)。

所以我的問題是,有一個正則表達式部分,說「一個非數字字符或空字符串」

+6

* 「我現在與正則表達式還挺新的,但我想了解更多」 * - 太棒了! *「所以我需要一個正則表達式搜索」* - 不。從例如https://docs.python.org/3/howto/regex.html – jonrsharpe

回答

1

將任務分解爲3部分。首先,在1-31範圍內的一個數字(tutorial),然後是一個月份的可能值列表,然後是兩個數字。

\b([1-9]|[12][0-9]|3[01])-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{2})\b 

Regex101 Demo

+0

這很有效,謝謝! – Rommel

+0

@Rommel我希望你能從這個例子中學到更多關於正則表達式的知識。如果沒有學習如何自己做出答案,這是不行的。 – 4castle

+0

@ 4castle,當用「35-Jul-12」餵食時,它會捕獲「5-Jul-12」,請注意! –