Python における正規表現の基本的な使い方やパターンの構築方法について解説します。文字列の検索や置換を効率的に行うためのテクニックを紹介します。
Python の 正規表現(Regular Expressions, RegExp) は、re
モジュールを使って文字列のパターンマッチングや置換を効率的に行うための強力なツールです。
本記事では、Python の re
モジュールを使った正規表現の基本構文や実践的な使用例を解説します。
Python で正規表現を扱うには re
モジュールをインポートする必要があります。
PYTHONimport re
PYTHONimport re text = "Hello, my name is Alice." pattern = r"Alice" match = re.search(pattern, text) if match: print("見つかりました:", match.group())
✅ re.search()
は 文字列の中から最初にマッチする部分を検索 します。
PYTHONimport re text = "Alice in Wonderland" pattern = r"Alice" match = re.match(pattern, text) if match: print("先頭でマッチしました:", match.group())
✅ re.match()
は 文字列の先頭にマッチする場合のみ成功 します。
Python の re
モジュールには、検索の挙動を制御する フラグ(オプション) があります。
フラグ | 説明 |
---|---|
re.IGNORECASE (re.I ) | 大文字・小文字を区別しない |
re.MULTILINE (re.M ) | 複数行検索を有効にする |
re.DOTALL (re.S ) | . を改行 \n にもマッチさせる |
✅ 例:大文字・小文字を区別しない検索
PYTHONimport re text = "Hello World" pattern = r"hello" match = re.search(pattern, text, re.IGNORECASE) print(match.group()) # "Hello"
パターン | 説明 |
---|---|
\d | 数字(0-9) |
\w | 英数字(a-z, A-Z, 0-9, _) |
\s | 空白(スペース、タブ、改行) |
. | 任意の 1 文字 |
PYTHONimport re pattern = r"\d+" text = "Age: 25" match = re.search(pattern, text) print(match.group()) # "25"
記号 | 説明 |
---|---|
* | 0 回以上の繰り返し |
+ | 1 回以上の繰り返し |
? | 0 回または 1 回の出現 |
{n} | n 回の繰り返し |
{n,} | n 回以上の繰り返し |
{n,m} | n 回以上 m 回以下の繰り返し |
PYTHONimport re pattern = r"\d{2,4}" text = "2023" match = re.search(pattern, text) print(match.group()) # "2023"
PYTHONimport re text = "Python 3.9, Python 3.10, Python 3.11" pattern = r"Python \d+\.\d+" results = re.findall(pattern, text) print(results) # ['Python 3.9', 'Python 3.10', 'Python 3.11']
re.sub()
- 文字列の置換PYTHONimport re text = "Hello, Alice!" pattern = r"Alice" new_text = re.sub(pattern, "Bob", text) print(new_text) # "Hello, Bob!"
✅ Python の正規表現のポイント
re.search()
は 部分一致を検索。re.match()
は 先頭から一致を検索。re.findall()
で すべての一致を取得。re.sub()
で 文字列を置換。re.IGNORECASE
, re.MULTILINE
)を活用すると検索範囲を広げられる。Python の正規表現を活用すれば、データ処理や文字列操作が格段に楽になります。
回 | タイトル | リンク |
---|---|---|
第 1 回 | Python: enumerate関数 | 詳 細 |
第 2 回 | Python: zip 関数の使い方 | 詳 細 |
第 3 回 | Python: zip() と enumerate() の組合せ | 詳 細 |
第 4 回 | Python の正規表現の基礎 | この記事 |
第 5 回 | Python の lambda 関数の使い方 | 詳 細 |
第 6 回 | Python の高階関数の基礎 | 詳 細 |
第 7 回 | Python: =, ==, !=, is, is not の使い分け | 詳 細 |
第 8 回 | Python: 変数のアンパックと _ の使い方 | 詳 細 |
第 9 回 | Python: with 文の使い方 | 詳 細 |
第 10 回 | Python: dictとオブジェクトのキーアクセス | 詳 細 |
当サイトの情報は、一般的な参考情報として提供しております。
正確な情報の掲載に努めておりますが、その内容の正確性・完全性・最新性を保証するものではありません。
記事の内容をご利用の際は、ご自身の責任において判断し、必要に応じて専門家にご相談ください。
当サイトの情報の利用により生じたいかなる損害についても、一切の責任を負いかねますのでご了承ください。
※ 本ページでは、著作権法に基づき、適正な引用の範囲内でコンテンツを紹介しています。
オリジナルの情報は発信元をご確認ください。
もし問題がありましたら、こちら からお問い合わせください。