Python は、人気のあるプログラミング言語として、文字列データの処理と操作のための正規表現の使用をサポートしています。正規表現は、文字列の特性を記述する方法であり、文字列内の内容の照合、フィルタリング、および置換に使用できます。 Python では、re モジュールが提供する関数ライブラリを使用して正規表現を操作および処理します。
1. 正規表現の基本
正規表現では、文字列内の特定のパターンに一致するためにいくつかの特殊文字が使用されます。最も単純な正規表現は、a、b、c などの通常の文字です。これらの文字は、それ自体とのみ一致します。さらに、正規表現は次の特殊文字もサポートしています:
次のコードは、文字セットのみに一致する最も単純な正規表現を示しています。文字列内の文字 a:
import re text = "Hello world" pattern = 'a' match = re.findall(pattern, text) print(match)
文字列には文字 a がないため、空のリストのみが出力されることがわかります。ここで、正規表現を使用して単語を一致させる方法を見てみましょう。
import re text = "Hello world" pattern = r"w+" match = re.findall(pattern, text) print(match)
これで、2 つの単語を含むリストができました。この正規表現では、
は単語の境界を表し、w
は 1 つ以上の単語文字で構成される一致する単語を表します。
2. re モジュールを使用して照合する
Python では、re モジュールを使用して、次のようなさまざまな文字列照合操作を実行できます。 ##re .search(pattern, string[, flags])
: 最初の位置に一致するパターンを検索し、一致するオブジェクトを返します。re.match(pattern, string[, flags])
: 文字列の先頭からパターンを照合し、照合が成功した場合は照合オブジェクトを返します。 re.findall(pattern, string[, flags])
: パターンに一致するすべての部分文字列を検索し、リストとして返します。 re.finditer(pattern, string[, flags])
: パターンに一致するすべての部分文字列を検索し、その反復子を返します。 re.sub(pattern, repl, string[, count, flags])
: 文字列内のパターンに一致するすべての部分文字列を repl に置き換えます。 re.split(pattern, string[, maxsplit, flags])
: 正規表現パターンに従って文字列を分割し、結果をリストとして返します。 次のコードは、re モジュールで
search() 関数を使用して正規表現と一致させる方法を示しています。 上記のコードでは、まず
search() 関数を使用して、文字列内の最初の一致を検索します。見つかった場合は
MatchObject
findall() 関数も使用しました。
3. グループ化
正規表現では、括弧
()
group()
またはgroups() 関数を使用して、グループ化された部分式にアクセスできます。
次のコードは、グループ化を使用して IP アドレスを照合する方法を示しています。
import re text = "The quick brown fox jumps over the lazy dog." pattern = r"w{3}" match = re.search(pattern, text) if match: print("Found match:", match.group(0)) else: print("No match found") matches = re.findall(pattern, text) print("Found matches:", matches)
使用する正規表現
(d{1,3}).(d{1,3 } ).(d{1,3}).(d{1,3}) IP アドレスを 4 つの部分に分割します。次に、group()
関数を使用して各セクションにアクセスします。4. re.sub() 関数を使用して置換します
re.sub()
import re ip_address = "192.168.1.1" pattern = r"(d{1,3}).(d{1,3}).(d{1,3}).(d{1,3})" match = re.search(pattern, ip_address) print("IP address:", match.group(0)) print("First octet:", match.group(1)) print("Second octet:", match.group(2)) print("Third octet:", match.group(3)) print("Fourth octet:", match.group(4))上記のコードでは、
re.sub() 関数を使用して次のことを行います。 replace a string with 単語「fox」を「cat」に置換し、置換された文字列を出力します。指定された置換の数を制御したい場合は、オプションの count パラメータを re.sub() 関数に追加するだけです。
Python の正規表現は非常に強力で、さまざまな複雑な文字列パターンに一致します。 re モジュールの関数を使用して、正規表現に関連する操作を完了できます。正規表現は、文字列を処理する場合に非常に便利なツールです。
以上がPython で正規表現を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。