2016-07-24 6 views
-5

私は、次の形式で日付と一致します正規表現を見つけようとしている:3 - 7月 - 16または30 - 6月 - 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 

さて、今年は、結構です。
は日の部分については、私が試してみました:73 - 7月 - 2015
それは一致します:3 - 7月 - 2015

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

を、私の問題は、そのような何かを与えられたときということです

/[^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)の範囲の数値、次にその月の可能な値のリスト、次に2つの数値。

\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

@ 4キャスルで '35-Jul-12'を摂取すると' 5-Jul-12'がキャッチされますので、注意してください! –

関連する問題