ホームページ  >  記事  >  バックエンド開発  >  Python 正規表現の知識ポイントを要約して整理する

Python 正規表現の知識ポイントを要約して整理する

WBOY
WBOY転載
2022-04-13 19:09:141926ブラウズ

この記事では、python に関する関連知識を紹介します, 主に正規表現に関連する問題を紹介します. 正規表現 (正規表現) は、次のことを表すことができる文字列です. 正規表現の一部を見てみましょう. 皆様のお役に立てれば幸いです。

Python 正規表現の知識ポイントを要約して整理する

推奨学習: Python ビデオ チュートリアル

1.1 正規表現

正規表現式 (正規表現) は文字列であり、正規の情報を表すことができます。 Python には正規表現モジュールが付属しており、これを使用して通常の情報を検索、抽出、置換できます。 1万人の中で1人を見つけるのは難しいですが、1万人の中で非常に「特徴的な」人を1人見つけるのは簡単です。仮に、緑色の肌をした身長3メートルの人がいたとしますが、その人が1万人の中にいたとしても、他の人は一目で見つけることができます。この「検索」の処理を正規表現では「マッチング」と呼びます。プログラム開発において、コンピューター プログラムに大きなテキストから必要なコンテンツを検索させたい場合は、正規表現を使用できます。正規表現を使用するには次の手順があります。
(1) パターンを探します。
(2) ルールを表現するには通常の記号を使用します。
(3) 情報を抽出します。

#1.2 正規表現の基本記号

1.2.1 ドット「.」

A dot は、改行文字を除く任意の a 文字 を置き換えることができます。これには、英語の文字、数字、漢字、英語の句読点、中国語の句読点が含まれますが、これらに限定されません。

1.2.2 アスタリスク " * "

アスタリスク は、その前の 部分式 (通常の文字、別のまたは複数の正規表現記号) 0 回から無制限の回数。

Python 正規表現の知識ポイントを要約して整理する 上記はすべて許容されます: (アスタリスクは前の式を表します)

Python 正規表現の知識ポイントを要約して整理する

1.2.3 ドット アスタリスク ".* "

ドットは改行以外の文字を表し、アスタリスクはその前の文字と 0 回または任意の回数一致することを表します。したがって、「.*」は、任意の長さの文字列を何度でも一致させることを意味します。


Python 正規表現の知識ポイントを要約して整理する 上記はすべて許容されます:
これは、「そんな」と「は」の間に「改行文字以外の任意の数の文字」が現れることを意味します。

Python 正規表現の知識ポイントを要約して整理する

1.2.4 疑問符「?」

疑問符は、その前の部分式の 0 回または 1 回を表します。ここでの疑問符は英語の疑問符

Python 正規表現の知識ポイントを要約して整理する であることに注意してください。上記のすべてが受け入れられます:
Python 正規表現の知識ポイントを要約して整理する

1.2.5 ドットとアスタリスクの疑問符「.*?」 (最も一般的なのは、 used)

組み合わせ後の使用方法:


Python 正規表現の知識ポイントを要約して整理する 上記すべてが使用可能:

Python 正規表現の知識ポイントを要約して整理する 注: ".*?" と " の違い.*"
。 *?これは、要件を満たす最も短い文字列を照合することを意味します。
一文の要約は次のとおりです。
① ".*": 貪欲モード、条件を満たす最長の文字列を取得します。
② ".*? ": 貪欲モードではなく、条件を満たす最短の文字列を取得します。

1.2.6 括弧「()」

文字列から内容の一部を「抽出」します。

次の文字列があります:

Python 正規表現の知識ポイントを要約して整理する Asご覧のとおり、このパスワードには左側に英語のコロンがあり、右側に漢字の「you」が付いています。正規表現を作成する場合: .*?結果は次のようになります:

Python 正規表現の知識ポイントを要約して整理する ただし、コロンと漢字の「you」はパスワードの一部ではありません。「12345abcde」のみが必要な場合は、括弧を使用する必要があります: # ### ##### 得る:#########

1.2.7 バックスラッシュ " \ "

正規表現では、疑問符、アスタリスク、中括弧、角括弧、括弧など、多くの記号が特別な意味を持ちます。特殊記号を通常の記号に、また通常の記号を特殊記号に変換するには、バックスラッシュを他の文字と組み合わせて使用​​する必要があります。
Python 正規表現の知識ポイントを要約して整理する

1.2.8 数値「\d」

正規表現で 1 桁を表すには「\d」を使用します。
2 つの数値を抽出する場合は \d\d​​ を使用でき、3 つの数値を抽出する場合は \d\d​​\d を使用できます。しかし、この番号の桁数がわからない場合はどうすればよいでしょうか?任意の数値を表すには * 記号を使用する必要があります。

Python 正規表現の知識ポイントを要約して整理する
すべては次の正規表現で表すことができます:
Python 正規表現の知識ポイントを要約して整理する

1.3 正規表現の使用

Pythonの正規表現モジュールの名前は「re」ですが、これは「正規表現」の略です。 Python では、このモジュールを使用する前にまずインポートする必要があります。インポートされたステートメントは次のとおりです:

import re

1.3.1 findall メソッド

Python の正規表現モジュールには、要件を満たすすべての項目を list 形式で返すことができる findall メソッドが含まれています。 ### 弦。 findall の関数プロトタイプは次のとおりです。

re.findall(pattern,string,flags=0)
pattern は正規表現を表し、string は元の文字列を表し、flags はいくつかの特殊な関数フラグを表します。 findall の結果は、一致するすべての結果を含むリストです。一致する結果がない場合は、空のリストが返されます。

特定のコンテンツを抽出する必要がある場合は、無関係な情報が取得されないように、かっこを使用してコンテンツを囲みます。複数の「(.*?)」が含まれている場合に返すにはどうすればよいですか?図 3-2 に示すように、返されるものはリストのままですが、リスト内の要素はタプルになり、タプルの最初の要素は口座番号、2 番目の要素はパスワードになります。


Python 正規表現の知識ポイントを要約して整理する

関数プロトタイプには flags パラメーターがあります。このパラメータは省略可能です。省略しない場合、大文字と小文字の区別や改行の無視など、いくつかの補助機能があります。

ここでは、例として改行の無視を説明します。改行を無視するには、「re.S」フラグを使用する必要があります。
Python 正規表現の知識ポイントを要約して整理する 一致した結果に「\n」という記号が表示されますが、何も得られないよりはマシです。コンテンツ内の改行は、後でデータをクリーニングするときに置き換えることができます。

1.3.2 検索メソッド

search() の使用法は findall() の使用法と同じですが、

ただし、search() は要件を満たす最初の文字列のみを返します。 ###。要件に一致するものが見つかると、検索を停止します。これは、非常に大きなテキストから最初のデータのみを検索する場合に特に便利で、プログラムの実行効率を大幅に向上させることができます。 search() の関数プロトタイプは次のとおりです:

結果については、一致が成功した場合は正規表現オブジェクトとなり、データが一致しなかった場合は None になります。 Python 正規表現の知識ポイントを要約して整理する
一致する結果を取得する必要がある場合は、.group() メソッドを使用して内部の値を取得する必要があります。


.group() のパラメータが 1 の場合のみ、正規表現の大括弧内の結果が出力されます。 Python 正規表現の知識ポイントを要約して整理する
.group() パラメータは、正規表現内の括弧の数を超えることはできません。パラメータ 1 は最初の括弧内のコンテンツを読み取ることを意味し、パラメータ 2 は 2 番目の括弧内のコンテンツを読み取ることを意味し、以下同様となります。

(写真にあるものは findall ではないことに注意してください)



Python 正規表現の知識ポイントを要約して整理する1.3.3 コンパイルメソッド

re.findall() には re の関数が付属しています。 .compile() を使用するため、re.compile() を使用する必要はありません。

#1.4 正規表現抽出テクニック

1.4.1 最初に大きなものを把握し、次に小さなものを把握します: 二次抽出

1.4.2 括弧内 括弧外 Python 正規表現の知識ポイントを要約して整理する

括弧内には他の文字を含めることができます。

具体的な影響については、以下の図を参照してください。


括弧内に他の通常の文字がある場合、それらの通常の文字が取得結果に表示されます。
Python 正規表現の知識ポイントを要約して整理する推奨学習:
Python ビデオ チュートリアル

以上がPython 正規表現の知識ポイントを要約して整理するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。