re.compile を使った方法
電話番号 ‘012-3456-7890’ から数字の部分を抜き出す方法。
まずは、import re で正規表現を使うためのモジュールをインポートする。
compile を使って正規表現のパターンを決める。
search を使って、指定した文字列から正規表現のパターンにマッチしたものを検索する。
マッチしたものは、group()で抽出することができる。
import re
phone_number = re.compile(r'(\d\d\d)-(\d\d\d\d)-(\d\d\d\d)')
r = phone_number.search('012-3456-7890')
print(r.group(0))
print(r.group(1))
print(r.group(2))
print(r.group(3))
012-3456-7890
012
3456
7890
‘\d’ ではなく、’¥d’ を指定した場合は下記のエラー。Windowsの場合は、’¥d’ でうまくいっていたので気づかなかった。Macの場合、’Option + ¥’ で、’\’ を入力することができる。要注意。
AttributeError: 'NoneType' object has no attribute 'group'
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
/var/folders/wh/h0c8s0bx6fg2py0mgxk2n3h80000gp/T/ipykernel_66849/3476373152.py in <module>
2 phone_number = re.compile(r'(¥d¥d¥d)-(¥d¥d¥d¥d)-(¥d¥d¥d¥d)')
3 mo = phone_number.search('012-3456-7890')
----> 4 print(mo.group(0))
5 print(mo.group(1))
6 print(mo.group(2))
AttributeError: 'NoneType' object has no attribute 'group'
最近のコメント