【Python】文字列が正規表現とマッチしているか調べるreモジュールとは?

プログラミング
スポンサーリンク

スポンサーリンク

今回の記事をおすすめする人

今回は文字列が正規表現とマッチしているか調べるモジュールreについて紹介していこうと思います。

Pythonの案件を取れるようになりたい

・Pythonの基礎文法を習得してモジュールについて詳しくなりたい

・文字列が正規表現とマッチしているか判定したい

このどれか一つでも当てはまる人に特におすすめしたい内容となっています。

Pythonについて

Pythonとは人工知能、機械学習、ディープラーニング、データ解析などに特化しており、2020年プログラミング言語人気ランキング1位になっているプログラミング言語です。

Pythonについて詳しく知りたい方はこちらのウェブサイトをどうぞ。

正規表現とマッチするか判定するmatchメソッドの紹介

まずmatchメソッドを使うためにreモジュールをimportしてあげてください。

import re

それではmatchメソッドの使い方を紹介していきます。

まずmatchメソッドとは文字列が正規表現とマッチするか判定してくれるメソッドです。

あまりイメージすることができないと思うので具体的に使っていきましょう。

import re

m = re.match('a','a')
print(m)

こちらのコードを実行してみてください。

これは一つ目の「”」で括った部分と二つ目の「”」で括った部分が一致していますか?という意味です。

一つ目が正規表現の部分で二つ目がマッチしているか判定したい文字列となります。

するとターミナル上に

<re.Match object; span=(0, 1), match='a'>

と表示されると思います。

Match objectとはつまり一致していますよ、ということです。

span=(0, 1)というのは0の位置から1の位置まで一致していますよ、ということです。

少し説明すると、例えばabcという文字列があった場合

(0の位置)|a|(1の位置)|b|(2の位置)|c|(3の位置)

となっています。

ちなみにMatch objectではなかった場合、Noneが表示されます。

それでは他にもやっていきましょう。

import re

#.(コンマ)は任意の一文字が入る
m = re.match('a.c', 'abc')
print(m)

こちらのコードを実行すると

<re.Match object; span=(0, 3), match='abc'>

このようになると思います。

abcじゃなくてもaccやaycなどaとcの間に任意の一文字を入れてもMatch objectが返ってくると思います。

それでは一気に紹介していきます。

"""
(注意)
文字列に指定するアルファベットは何でも良い
下記のパターンはMatch objectを返す一例
"""

#?はcが0回か1回ある場合にヒット
m = re.match('ac?','a')
m = re.match('ac?','ac')

#*はbが0回以上ある場合にヒット
m = re.match('ab*','a')
m = re.match('ab*','abb')

#+はdが一回以上ある場合にヒット
m = re.match('cd+','cd')
m = re.match('cd+','cdd')

こちらのコードを実行してあげればMatch objectが返ってくると思います。

それでは中括弧やブラケットの鍵カッコを使った判別方法も紹介していきます。

#aが4つある場合のみヒット
m = re.match('a{4}','aaaa')

#aが2〜5つある場合にヒット
m = re.match('a{2,5}','aaa')

#0~9の場合にヒット(\dに省略可能)
m = re.match('[0-9]','2')
m = re.match('\d','2')

#数字以外の場合にヒット(\Dに省略可能)
m = re.match('^[0-9]','a')
m = re.match('\D','a')


#アルファベット順でa~dの間にある場合のみヒット
m = re.match('[a-d]','b')

#小文字のアルファベットと大文字のアルファベット全ての場合にヒット
m = re.match('[a-zA-Z]','C')

#全てのアルファベットと0~9の数字の場合にヒット(\wに省略可能)
m = re.match('[a-zA-Z0-9]','2')
m = re.match('\w','2')

#^は以外を表し、アルファベット以外の場合にヒット(\Wに省略可能)
m = re.match('^[a-zA-Z]','1')
m = re.match('\W','2')

#スペースの場合にヒット
m = re.match('\s',' ')

#スペース以外の場合にヒット
m = re.match('\S','a')

#アスタリスクの場合にヒット
m = re.match('\*','*')

#クエスチョンマークの場合にヒット
m = re.match('\?','?')

上記のコードを打ち込んであげてprint(m)してあげればMatch objectが返ってくると思います。

それぞれの記号の使い方を覚えておきましょう。

他にも紹介し切れないほど多くの記号の使い方があるのでPythonの公式ホームページの方のリンクを貼っておくのでそちらの方も確認してみてください。

Python 正規表現 re

それではおまけとしてPythonのおすすめの勉強方法について紹介したいと思います。

Pythonの勉強方法【おまけ】

Pythonの基礎文法を勉強するにはUdemyというオンラインプログラミング学習プラットフォームがおすすめです。

具体的に言うとこちらの講座です。

この講座だけで基礎文法だけでなく実践的な応用スキルまで身につけることができます。

めちゃくちゃわかりやすい講座なので気になる方は是非みてみてください。

私が受けたPythonの講座の中では最も良かったですし、この講座だけで案件を獲得できるようになるレベルまでプログラミングを上達させることができると思います。

実際多くの人がWeb上で高評価をしていてUdemyのPython講座といえばこの講座と言われているほどです。

今回紹介したmatchだけでなくsearchメソッドやfindallメソッドなどmatchの機能を拡張したメソッドを追加でレクチャーしてくれています。

気になる方はこちらのリンクからどうぞ。

Udemy

その他の記事

おわりに

今回はmatchを用いて文字列と正規表現がマッチするか判定する方法について紹介しました。

Pythonの基礎を学び終えた方や案件を獲得したい方は勉強しておきたい内容です。

興味がある方はUdemyのコースを受けてみるのも良いかと思います。

Udemy

コメント

タイトルとURLをコピーしました