私は正規表現が苦手で、この単純なタスクに頭を悩ませているようには見えません。
常に 2 つの形式のいずれかを持つ文字列で 2 つの日付を解析する必要があります。
「2013年12月29日~2014年1月3日 貴施設へのお問い合わせ」
また
「2013 年 12 月 29 日~2014 年 1 月 3 日の宿泊施設でのお問い合わせ」
2 つの異なる日付形式が私をうんざりさせています。どんな洞察もいただければ幸いです!
私は正規表現が苦手で、この単純なタスクに頭を悩ませているようには見えません。
常に 2 つの形式のいずれかを持つ文字列で 2 つの日付を解析する必要があります。
「2013年12月29日~2014年1月3日 貴施設へのお問い合わせ」
また
「2013 年 12 月 29 日~2014 年 1 月 3 日の宿泊施設でのお問い合わせ」
2 つの異なる日付形式が私をうんざりさせています。どんな洞察もいただければ幸いです!
/(\d+ \w+, \d+|\w+ \d+, \d+)/
例えば。Rubularで試してみてください。
確かに、より多くのものをピックアップします2013 NotReallyAMonth, 12345
。しかし、入力に日付のように見えるものがなく、実際には日付ではない場合、これは機能する可能性があります。
正規表現をより強力にすることができますが、一致するものにより多くの制限を適用します:
/(\d{2} (?:January|December), \d{4}|(?:January|December) \d{2}, \d{4})/
この場合、日は常に 2 桁で、年は 4 です。月は明示的にリストされます (すべてをリストする必要があります)。
更新:範囲の場合、別の正規表現になります:
/((?:Jan|Dec) \d+ - \d+, \d{4})/
明らかに、それらはすべて一緒に組み合わせることができます。
/(\d{2} (?:January|December), \d{4}|(?:January|December) \d{2}, \d{4}|(?:Jan|Dec) \d+ - \d+, \d{4})/