案外知られていないようなのですが、Python 3 標準の reモジュールの正規表現では\dがいわゆる全角数字にもマッチします。 実際に試してみます。 >>> import re >>> re.findall(r"\d", "012012") ['0', '1', '2', '0', '1', '2'] >>> \dが'0'、'1'、'2'にもマッチしていますね。 この挙動があまり知られていない原因としては、 Python 3の公式ドキュメントの「正規表現 HOWTO」の説明が、かなり誤解を招きやすい書き方になっている。 \dがいわゆる全角数字にマッチするかどうかをわざわざテストする人は少ない 敬虔なPythonistaは正規表現を使わないやり方を好む傾向がある 等の理由が考えられますが、他の原因もあるかもしれません。 \dを[0-9]にだけマッチさせるには、\dの代わりに[0-9]を使う