私は正規表現に慣れていないので、誰かが助けてくれるかどうか疑問に思っています。正規表現が私がやろうとしていることに最適なオプションであるかどうかさえわかりません。
調べている文字列の配列があります。さまざまな日付形式に一致する配列内のすべてのアイテムを検索したいと思います。これが私が一致させようとしているフォーマットの例です。
2012年4月1日-日に先行ゼロのない短い月の名前-一致
2012年4月1日-日の先行ゼロの短い月の名前-一致
2012年4月1日-日に先行ゼロのない全文月名-一致
2012年4月1日-日の先頭にゼロが付いたフルテキストの月の名前-一致
2012年4月1日-月と日の先行ゼロなし-一致
2012年4月1日-月と日の先行ゼロ-一致
2012年2月29日-年が飛躍の場合、2/29を許可-一致
2001/12/13-1-12以外の月-一致なし
2012年2月30日-1か月の日数が多すぎます-一致しません
2011年2月29日-うるう年でない場合-一致なし
私が開発した現在の正規表現。
\b(?:(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May?|Jun(?:e)?|Jul(?:y) |Aug(?:ust)?|Sep(?:t(?:ember)?)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?))|(0?[1-9]|1[012])[- /.,](0?[1-9]|1[0-9]|2[0-9]|3[01])
これらの各フォーマットのさまざまな部分をデテックするために正規表現を開発することはできますが、それらをリンクすると、一致するものが1つだけになります。現在、2回一致しています(月、月+日)。全体が一致したときにのみ一致させたい。
ありがとう
jlimited