- 半角括弧はメタ文字なので、エスケープが必要です。
- 正規文字列内でuプレフィックスは使えません。ただの文字uだと認識されています。
- 漢字はちょっと扱いが面倒ですが、曜日ならば列挙すれば良いのでは。
よって、次のように書けます。
Python
1r"\d{4}/\d{1,2}/\d{1,2} ([月火水木金土日])"
上記の点に加え、次の箇所も修正しています。
0. 半角括弧でのグループ化は、少なくとも現段階では不要なので排除しています。
0. {1}は無駄なので、適当に書き直しています。
Debuggex: Online visual regex tester. JavaScript, Python, and PCRE.
おまけ
後から各要素を取り出したいなら、キャプチャを取るのが便利です。
Python
1r"(\d{4})/(\d{1,2})/(\d{1,2}) (([月火水木金土日]))"
Debuggex: Online visual regex tester. JavaScript, Python, and PCRE.
実際のコードではこんなふうに使います。
Python
1import re
2
3src = '2019/9/3 (火)'
4
5pattern = re.compile(r"(\d{4})/(\d{1,2})/(\d{1,2}) (([月火水木金土日]))")
6if m := pattern.fullmatch(src):
7 year, month, day, weekday = m.groups()
8 print(year, month, day, weekday)
9else:
10 print('マッチ失敗')
実行結果 Wandbox
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/18 07:37
2019/11/22 05:32
2019/11/22 08:47