本記事では正規表現での部分一致や完全一致の記述方法について説明します。
具体的には以下の2点です。
・Python+正規表現の完全一致の記述例
・Python+正規表現の部分一致・前方一致・後方一致の記述例
本記事を読めば正規表現の部分マッチについて理解できます。
目次
Python+正規表現の完全一致の記述例
完全一致させたい場合は正規表現と開始の特殊文字と終了の特殊文字で囲む必要があります。
特殊文字は以下の通り。
・開始の特殊文字:「^」または「A」
・終了の特殊文字:「$」または「Z」
◆記述例(「あいうえお」をマッチさせたい場合)
'^あいうえお$'
'AあいうえおZ'
'Aあいうえお$'
◆Pythonでの記述例
Pythonで正規表現を記述する場合は「re」ライブラリを使用します。
1 2 3 | import re pattern = re.compile('AあいうえおZ') pattern.match('あいうえお') |
◆実行結果
1 | <re.Match object; span=(0, 5), match='あいうえお'> |
Python+正規表現の部分一致・前方一致・後方一致の記述例
部分一致する方法について以下の3点+Pythonでの記述例について説明します。
・文字列中に指定した文字列があるかチェックする方法
・指定した文字列で始まるかチェックする方法
・指定した文字列で終わるかチェックする方法
文字列中に指定した文字列があるかチェックする方法
「.*あいうえお.*」のように指定します。
「.」は改行以外の1字、「*」は0回以上の繰り返しという意味です。
「.*」と記述することで、改行以外であれば「どんな文字でもどんな長さでもOK」という意味になります。
◆記述例(「あいうえお」をマッチさせたい場合)
'.*あいうえお.*'
上記場合では、「ああああ、あいうえお」でも「あいうえお かきくけこ さしすせそ」でもマッチします。
◆Pythonでの記述例
1 2 3 4 | import re # 文章の中に特定の文字列があるかチェックする場合 pattern = re.compile('.*かきくけこ.*') pattern.match('あいうえお かきくけこ さしすせそ') |
◆実行結果
1 | <re.Match object; span=(0, 17), match='あいうえお かきくけこ さしすせそ'> |
指定した文字列で始まるかチェックする方法
先頭に開始の特殊文字である「^」または「A」を指定します。末尾に特に制限がない場合は「.*」を指定します。
◆記述例(「あいうえお」から始まる文字列とマッチさせたい場合)
'^あいうえお.*'
'Aあいうえお.*'
上記場合では、「あいうえお」から始まればマッチします。
「あいうえお かきくけこ さしすせそ」はマッチしますが、「ああああ、あいうえお」のように前方に違う文字列がある場合はマッチしません。
◆Pythonでの記述例
1 2 3 | import re pattern = re.compile('^あいうえお.*') pattern.match('あいうえお かきくけこ') |
◆実行結果
1 2 | <re.match object="" span="(0," 11="" match="あいうえお かきくけこ"> </re.match> |
指定した文字列で終わるかチェックする方法
末尾に終了の特殊文字である「$」または「Z」を指定します。末尾に特に指定がない場合は「.*」を指定します。
◆記述例(「かきくけこ」で終わる文字列とマッチさせたい場合)
'.*かきくけこ$'
'.*かきくけこZ'
上記場合では、「かきくけこ」から終わればマッチします。
「ああああ、あいうえお」のように前方に文字がある場合はマッチしますが、「あいうえお かきくけこ さしすせそ」のように後方に文字列がある場合はマッチしません
◆Pythonでの記述例
1 2 3 | >>> import re >>> pattern = re.compile('.*かきくけこ$') >>> pattern.match('あいうえお かきくけこ') |
◆実行結果
1 | <re.Match object; span=(0, 11), match='あいうえお かきくけこ'> |
正規表現で完全一致・部分一致をマッチさせる場合の注意事項
「^」と「A」は意味が微妙に意味が異なります。「$」と「Z」も同様です。
「^」は行の先頭でマッチを行うため、マッチを行う文字列が複数行に渡る場合には、2行目以降の先頭にマッチする可能性があります。
「A」は複数行の場合でも文字列の先頭にマッチ可能です。
「$」も同様で複数行にわたる場合でも各行の行末にマッチします。
文字列の末尾にマッチさせたい場合は「Z」を指定しましょう。
文字列が1行限定の場合ならどちらでも良いですが、改行が入る可能性がある場合は「AあいうえおZ」のように指定しましょう。
終わりに
今回は正規表現での完全一致・部分一致の方法について紹介しました。
以下の3点はよく使うのでとりあえずこれを覚えておきましょう。
・開始の特殊文字:「^」または「A」
・終了の特殊文字:「$」または「Z」
・改行以外の0文字以上:「.*」
「^」と「A」、「$」と「Z」は微妙に意味合いが異なります。
ルールを理解した上で使用するようにしましょう。
Pythonの正規表現チェッカー>>正規表現チェッカー for Python