ここでは、Pythonにおける正規表現の任意の文字の抽出する方法について解説しています。
この記事の対象
文字列の位置表現
文字列の先頭を示すメタキャラクタが「^」、末尾を示すメタキャラクタが「$」になります。
例えば「^Centimeters$」としたら「Centimeters」という文字列だけを認識します。
「^」「$」を用いた使用例
import re
#1---抽出したいものを指定
tansaku = r"^Centimeters$"
#2---探索先の文字列
word = "Centimeters"
print(re.match(tansaku,word))
#<_sre.SRE_Match object; span=(0, 11), match='Centimeters'>
上記のプログラムは抽出したいものだけを指定するものです。
それでは解説していきます。
#1---抽出したいものを指定
tansaku = r"^Centimeters$"
1の部分では抽出したい文字列を「^」「$」を用いて表現しています。これらを使用しているから「Centimeters」という文字列だけを指定している意味になります。
#2---探索先の文字列
word = "Centimeters"
次に2の部分では、探索先の文字列を指定しています。ここでは分かりやすく、1の部分で指定したものと同じ文字列を書いています。ですので、結果としてはちゃんとマッチしていることが分かります。
仮に、wordの中身を「Per」などとしたらNoneになります。
任意の一文字表現
任意の一文字を表現する方法として「.」があります。
例えば、「^…..$」とすれば5文字の文字列のときマッチするということになります。
「.」を用いた使用例
import re
#1---文字列のリスト
word = ["five","Centimeters","Per","Second"]
#2---探索したい文字列
tansaku = r"^C..........$"
#3---出力
for i in word:
print(re.match(tansaku,i))
#None
#<_sre.SRE_Match object; span=(0, 11), match='Centimeters'>
#None
#None
上記のプログラムは、「C」から始まる11文字の文字列だけを抽出しています。
それでは解説していきます。
#1---文字列のリスト
word = ["five","Centimeters","Per","Second"]
1の部分では、複数の文字列をリストにしています。
#2---探索したい文字列
tansaku = r"^C..........$"
2の部分では、探索したい文字列を指定しています。ここではCという文字から始まり11文字で構成されているものを指定しています。
#3---出力
for i in word:
print(re.match(tansaku,i))
最後にfor構文にすることで、他の文字はNoneになっており、Centimetersだけが抽出できていることを確認しています。