Python正規表現の文字クラス(文字セット)とは?基本の使い方を解説
文字クラスとは
「文字クラス」または「文字セット」とは、角括弧 [ ] で囲まれた文字の集合のことです。正規表現エンジンは、文字クラス内に含まれる複数の文字のうち、いずれか1文字にマッチします。マッチさせたい文字を角括弧の中に記述します。たとえば、母音のいずれかにマッチさせたい場合は、[aeiou] という文字セットを使用します。
文字クラスがマッチするのは常に「1文字」だけである点に注意してください。また、文字クラス内の文字の並び順は結果に影響しません。[aeiou] と [uoiea] はまったく同じ意味になります。
文字クラス内でハイフン(-)を使うと、文字の範囲を指定できます。たとえば [0-9] は 0〜9 の数字1文字にマッチします。同様に、英字全体(大文字・小文字)を表すには [A-Za-z] という文字クラスを使用します。
補足:否定文字クラス
文字クラスの先頭にキャレット(^)を置くと、「括弧内の文字以外」にマッチする否定文字クラスになります。たとえば [^aeiou] は、母音以外の任意の1文字にマッチします。特定の文字を除外してパターンマッチを行いたい場合に便利です。
使用例
次のコードは、指定した文字列からすべての母音を検索して表示する例です。
import re s = 'mother of all battles' result = re.findall(r'[aeiou]', s) print(result)
実行結果
このコードを実行すると、次の出力が得られます。
['o', 'e', 'o', 'a', 'a', 'e']
re.findall() は、パターンにマッチしたすべての文字列をリストとして返す関数です。この例では、文字列中に含まれる母音が左から順番にリスト形式で出力されています。
-
Pythonの正規表現で任意の1文字にマッチさせる方法
Pythonの正規表現では、特別なメタ文字「.」(ドット)を使用することで、文字列内の任意の1文字にマッチさせることができます。このメタ文字は、改行文字(\n)を除くあらゆる単一の文字と一致します。re.findall() 関数と組み合わせれば、指定した文字列からすべての文字を1つずつ取り出すことが可能です。サンプルコードimport re foo = https://www/twitter/index.php 403 result = re.findall(r., foo) print(result)実行結果上記のコードを実行すると、次のような出力が得られます。文字列内の各文字(英字・記号
-
Pythonの正規表現とは?基本の考え方と主な使い方をわかりやすく解説
正規表現とは何か 正規表現(Regular Expression)とは、文字列の中から特定のパターンを検索したり置換したりするために用いられる、文字の並び(パターン)のことです。シンプルに言えば、「文字列の中から目的のパターンを見つけ出し、必要に応じて書き換えるための記法」と理解するとよいでしょう。 正規表現はPythonだけでなく、Perl、R、Javaなど、ほとんどのプログラミング言語でサポートされており、テキスト処理における共通の基礎技術となっています。 正規表現が活躍する場面 正規表現は、ソースコード、ログファイル、スプレッドシート、さらにはドキュメントといったテキストデータから情報