Pythonでは、正規表現を使って文字列のパターンマッチングを行うことができます。特に、文字列の繰り返しマッチングは、データの解析や処理において非常に便利な機能です。
繰り返しマッチングの基本
Pythonの正規表現では、以下のメタ文字を使って繰り返しマッチングを表現することができます。
*
: 直前の文字が0回以上繰り返す+
: 直前の文字が1回以上繰り返す?
: 直前の文字が0回または1回現れる
例えば、a*
はa
の文字が0回以上続く文字列('', 'a', 'aa', 'aaa', ...
)にマッチします。
回数指定の繰り返しマッチング
また、{n}
や{n,m}
を使って、繰り返しの回数を指定することもできます。
{n}
: 直前の文字がn回繰り返す{n,m}
: 直前の文字がn回以上、m回以下繰り返す
例えば、a{2,4}
はa
の文字が2回以上4回以下続く文字列('aa', 'aaa', 'aaaa'
)にマッチします。
サンプルコード
以下に、Pythonの正規表現を使った繰り返しマッチングのサンプルコードを示します。
import re
# '*'を使った繰り返しマッチング
pattern = re.compile('a*')
print(bool(pattern.match(''))) # True
print(bool(pattern.match('a'))) # True
print(bool(pattern.match('aa'))) # True
# '+'を使った繰り返しマッチング
pattern = re.compile('a+')
print(bool(pattern.match(''))) # False
print(bool(pattern.match('a'))) # True
print(bool(pattern.match('aa'))) # True
# '?'を使った繰り返しマッチング
pattern = re.compile('a?')
print(bool(pattern.match(''))) # True
print(bool(pattern.match('a'))) # True
print(bool(pattern.match('aa'))) # False
# '{n}'を使った繰り返しマッチング
pattern = re.compile('a{2}')
print(bool(pattern.match(''))) # False
print(bool(pattern.match('a'))) # False
print(bool(pattern.match('aa'))) # True
# '{n,m}'を使った繰り返しマッチング
pattern = re.compile('a{2,3}')
print(bool(pattern.match(''))) # False
print(bool(pattern.match('a'))) # False
print(bool(pattern.match('aa'))) # True
print(bool(pattern.match('aaa'))) # True
print(bool(pattern.match('aaaa'))) # False
以上、Pythonの正規表現を使った文字列の繰り返しマッチングについて解説しました。この機能を使うことで、より複雑な文字列のパターンを効率よく処理することができます。ぜひ活用してみてください。