さまざまな日付形式を取得する正規表現を作成しようとしています。Pythonのさまざまな日付形式の正規表現
文章はシリーズになっていて、シリーズの各サンプルには1つの日付しか含まれていませんが、他の数字も含まれています。
日付の書式はこのようなものです:
:のみ、それは20世紀の年であり、我々が想定し2桁を持っている年(すなわち19nn)ここに私の正規表現があるために
04/20/2009; 04/20/09; 4/20/09; 4/3/09
Mar-20-2009; Mar 20, 2009; March 20, 2009; Mar. 20, 2009; Mar 20 2009;
20 Mar 2009; 20 March 2009; 20 Mar. 2009; 20 March, 2009
Mar 20th, 2009; Mar 21st, 2009; Mar 22nd, 2009
Feb 2009; Sep 2009; Oct 2010
6/2008; 12/2009
2009; 2010
df_dates = df.str.extract(r'((?:\d{1,2})?[-/\s,]{0,2}(?:\d{1,2})?(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec|January|February|March|April|May|June|July|August|September|October|November|December)?[-/\s,]{0,2}(?:19|20)?\d{2})')
私の正規表現は、これらの結果を生成します。
INPUT1
Lab: B12 969 2007\n
found1
12,969
INPUT2
Contemplating jumping off building - 1973 - difficulty writing paper.\n
found2
1973
質問
どのように私は望ましい結果を得るために、私の正規表現を変更できますか?
"1973"がマッチしてはならない理由はわかりません。最後の例は "2010"で、 "1973"と同じ形式です。 – Racso
重複しているかどうかわかりません。これは正規表現に関する質問ですが、もう一方は正規表現に限定されません。あなたがリンクしている質問の答えはおそらくこの場合にも役立つと思います。 – Racso