ホームページ >バックエンド開発 >Python チュートリアル >Python で正規表現を使用する方法

Python で正規表現を使用する方法

王林
王林オリジナル
2023-06-10 08:25:002986ブラウズ

Python は、人気のあるプログラミング言語として、文字列データの処理と操作のための正規表現の使用をサポートしています。正規表現は、文字列の特性を記述する方法であり、文字列内の内容の照合、フィルタリング、および置換に使用できます。 Python では、re モジュールが提供する関数ライブラリを使用して正規表現を操作および処理します。

1. 正規表現の基本

正規表現では、文字列内の特定のパターンに一致するためにいくつかの特殊文字が使用されます。最も単純な正規表現は、a、b、c などの通常の文字です。これらの文字は、それ自体とのみ一致します。さらに、正規表現は次の特殊文字もサポートしています:

  • . 任意の 1 文字と一致することを意味します
  • w は任意の 1 文字、数字、またはアンダースコア文字と一致することを意味します
  • d は任意の 1 つの数字と一致することを意味します
  • s は任意の 1 つのスペース、タブ、または改行文字と一致することを意味します
    • は 0 個以上の先行文字と一致することを意味します
    • は、先行する 1 つ以上の文字と一致することを意味します
  • ? は、先行する文字の 0 つまたは 1 つと一致することを意味します 文字
  • [ ] は文字セットの定義を表します
  • | OR 演算子を表します
  • () グループ化を表します

次のコードは、文字セットのみに一致する最も単純な正規表現を示しています。文字列内の文字 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()
  • 関数と
findall()

関数を使用して正規表現と一致させる方法を示しています。 上記のコードでは、まず search() 関数を使用して、文字列内の最初の一致を検索します。見つかった場合は MatchObject

オブジェクトを返し、見つからない場合は None を返します。また、一致するすべての文字列のリストを返す

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()

関数は正規表現を使用して、サブストリングを削除、置換、または変更できます。文字列文字列。次のコードは、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() 関数に追加するだけです。

5. 結論

Python の正規表現は非常に強力で、さまざまな複雑な文字列パターンに一致します。 re モジュールの関数を使用して、正規表現に関連する操作を完了できます。正規表現は、文字列を処理する場合に非常に便利なツールです。

以上がPython で正規表現を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。