皆さま、こんにちは。ホンヤク社の成田です。
3月になりました。もう寒さのピークは越したと思いますが、皆さまいかがお過ごしでしょうか。
本日は、引き続き正規表現の組み合わせ例をご紹介したいと思います。前回は日付を表現する例を挙げましたが、今回は時刻を表現するケースについて扱います。組み合わせの素材として使う正規表現の種類は、日付と同様に「\d」「[ ]」「{n}」「( | )」などです。
<組み合わせ例>
\d\d:\d\d
⇒ 「08:45」「12:00」「23:45」など、2桁ずつの数字の間にコロンが入るシンプルな時刻の表現です。ただし、全角文字混じりや「99:00」「12:78」などの不適当なケースもヒットしてしまいますので、より厳密な正規表現にするには、「[0-2][0-9]:[0-5][0-9]」とすると良いでしょう。
(01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23):[0-5][0-9]
⇒ 先ほどお伝えした「[0-2][0-9]:[0-5][0-9]」は一見厳密のようですが、実は「24:35」「29:00」などのケースもヒットしてしまいます。それらを除外するには「( )」を使って、「時」の部分には1から23までの数字のみが入るようにすると良いでしょう。かなり冗長ですが、正確さを優先した表現です。
午[前後][0-9]{1,2}時[0-9]{1,2}分
⇒ 「午前8時45分」「午後10時02分」など、「午前」か「午後」と「半角数字が1~2つ」と「時」と「半角数字が1~2つ」と「分」の組み合わせがヒットします。ただ、やはり「午前99時99分」や「午後20時80分」といったものもヒットするため、厳密にしたい場合は上記のような冗長な表現なども検討すると良いでしょう。また、「AM」「PM」も含めたい場合は、頭の部分を「(午前|午後|AM|PM)」のようにすると良いかと思います。
いかがでしたでしょうか? 前回の日付と同様に、正規表現を使ってさまざまな形式の時刻を表すことができますので、ぜひお試しください。
次回は、日付と時刻以外のさまざまな数字に関する表現をご紹介したいと思います。
