text = "file1 file3 file9 file10 file13 file15 file16 file19 file20 file23"
ダメな例
re.findall("file[10-19]", text) # ['file1', 'file9', 'file1', 'file1', 'file1', 'file1', 'file1']
[]内は1文字ごとに区切られるため2桁を表現できません。
例外として、1桁のみハイフンによる連番表記が可能です。
この場合は、1 or 0~1 or 9という正規表現になってしまいます。
良い例
re.findall("file1[0-9]", text) # ['file10', 'file13', 'file15', 'file16', 'file19']
10の位を[]の外に追い出せばOKです。
1の位の連番を[]内で表現します。
1の位の連番を[]内で表現します。
0 件のコメント:
コメントを投稿