0

私は正規表現が苦手で、この単純なタスクに頭を悩ませているようには見えません。

常に 2 つの形式のいずれかを持つ文字列で 2 つの日付を解析する必要があります。

「2013年12月29日~2014年1月3日 貴施設へのお問い合わせ」

また

「2013 年 12 月 29 日~2014 年 1 月 3 日の宿泊施設でのお問い合わせ」

2 つの異なる日付形式が私をうんざりさせています。どんな洞察もいただければ幸いです!

4

1 に答える 1

1

/(\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})/
于 2013-10-23T17:51:55.767 に答える