本記事は正規表現でピリオド(ドット)を使う方法について説明する記事です。
具体的には以下の2点について説明します。
・正規表現でピリオドを使う方法
・Pythonでのピリオド(ドット)の正規表現マッチ例
ピリオド(ドット)は正規表現の特殊記号「改行以外の1字」として使われているため、ただ書くだけではピリオドとして扱われません。
ピリオドを文字列としてチェックしたい場合はバックスラッシュでエスケープする必要があります。
正規表現のエスケープまとめ>>Python正規表現の記号エスケープ処理
Pythonの正規表現チェッカー
Pythonの正規表現チェッカーを作成してみました。興味がある方は覗いてみてください。
>>正規表現チェッカー for Python
目次
正規表現でピリオドを使う方法
ピリオドは正規表現の特殊文字の一つであるためそのまま使用するとピリオドのチェックはできません。
「.com」に文字列がマッチするかチェックしたい場合にそのまま「.com」と記述した場合でもマッチはします。
マッチするので一見問題ないように見えますが、「.」は正規表現において「改行以外の1文字ならなんでもOK」という意味なので
「acom」や「あcom」のように入力してもマッチしてしまいます。マッチさせたいのは「.」記号のみなのでこれでは本来やりたいチェックはできていません。
よって以下のようにバックスラッシュでエスケープした記述にする必要があります。
Pythonでのピリオド(ドット)の正規表現マッチ例
Pythonで正規表現をチェックする場合は「re」ライブラリを使用します。
今回は以下の2点について説明します。
・Pythonでのピリオド(ドット)を文字列として使いたい場合の記述例
・Pythonでのピリオド(ドット)を特殊記号として使用する場合の記述例
Pythonでのピリオド(ドット)を文字列として使いたい場合の記述例
Pythonでの記述例は以下の通りです。
1 2 3 | import re pattern = re.compile('.com') pattern.match('.com') |
◆実行結果
re.Match object; span=(0, 4), match='.com'
Pythonでのピリオド(ドット)を特殊記号として使用する場合の記述例
ピリオドを特殊記号(改行以外の全ての文字)として使う場合の記述例は以下の通りです。
1 2 3 4 | import re # アスタリスクは0回以上の繰り返しの意味 pattern = re.compile('.*') pattern.match('aaa.com') |
1 | <re.Match object; span=(0, 7), match='aaa.com'> |
上記の例ではどんな文字列でもマッチします。
正規表現の特殊記号については「Pythonの正規表現で用いる特殊記号一覧」にまとめています。
以上、ピリオドを正規表現でチェックする方法でした。
Pythonの正規表現チェッカー
Pythonの正規表現チェッカーを作成してみました。
>>正規表現チェッカー for Python
まとめ
ピリオド(ドット)は正規表現の特殊文字として使用されているため、使用する際にはバックスラッシュでエスケープする必要があります。
そのまま書いてしまうと意図しないチェックとなるので注意しましょう。
正規表現のエスケープまとめ>>Python正規表現の記号エスケープ処理