タイトルのことをやろうとしたら、同じことをやってる記事をWeb上で探せなかったのでメモ
【1月2日】や【5件】みたいなものを探したいけど、【123】みたいなものは無視したいときがあった。すなわち、【】の中の文字列(記号は除く)を取りたいけど、中身が数字だけだと困る、また、1文字だけだと困る、というピンポイントなことを考える機会があった。
まあまあ悩んで、下のような正規表現パターンを作ってやればいいという結論。(Pythonでかいてます)
import re
pat = re.compile(r'【\D\w+】|【\d\w*\D\w*】')
| の左側は、【】内の1文字目が数字以外の文字で、2文字目以降は、数字or文字の1文字以上を表す。
これだけだと1文字目が数字の【5件】などの場合に対応できないので、| の右側で、1文字目が数字だった場合のパターンを作っている。1文字目数字で、以降のどこかで数字以外の文字が入るが、それ以外は0字以上の数字or文字、というパターン。
使い所少ない&もっと良い方法はありそうだけど、とりあえずこれで問題なさそうなので書き留めておく。