LoginSignup
0
0

More than 3 years have passed since last update.

日付に関する正規表現

Last updated at Posted at 2020-08-05

日付を絞る正規表現が意外と思いつかなかったんだよね

日付は1日から31日まであるわけですが、それを表現する正規表現が今ひとつ思いつかず。
二桁の連番の表現ってなかなか難しい

結論を先に言おう

1から31を表現

([1-9]|[12][0-9]|3[01])

一桁を左0詰め表現

(0[1-9]|[12][0-9]|3[01])

8月の表現

日付をYYYYMMDDで表現することとして

202008(0[1-9]|[12][0-9]|3[01])

フォルダの特定など

/home/hoge/202008/202008(0[1-9]|[12][0-9]|3[01])/abc.log

OR表現に悩んでいて無駄なログまで拾っていたのです

カッコとOR表現を使えば、正規表現で連番を表現できるってことに気づくのにだいぶかかったんだよね。

これで、ログ検索とかもだいぶ楽になるかなあ、と思う次第です。

これまでは、15日から24日までのログを取りたいと思っても、OR表現に思い当たらずとりあえず10日代と20日代を全部拾ってたからすごく無駄な時間がかかってたんだよね。

202008[12][0-9].log

これもこういうふうにすると解決しますね。

202008(1[5-9]|2[0-4]).log

正規表現を知識と分かっていても、その組合せに気づくには知恵が必要という好例でした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0