この記事では、python に関する関連知識を紹介します, 主に正規表現に関連する問題を紹介します. 正規表現 (正規表現) は、次のことを表すことができる文字列です. 正規表現の一部を見てみましょう. 皆様のお役に立てれば幸いです。
推奨学習: Python ビデオ チュートリアル
正規表現式 (正規表現) は文字列であり、正規の情報を表すことができます。 Python には正規表現モジュールが付属しており、これを使用して通常の情報を検索、抽出、置換できます。 1万人の中で1人を見つけるのは難しいですが、1万人の中で非常に「特徴的な」人を1人見つけるのは簡単です。仮に、緑色の肌をした身長3メートルの人がいたとしますが、その人が1万人の中にいたとしても、他の人は一目で見つけることができます。この「検索」の処理を正規表現では「マッチング」と呼びます。プログラム開発において、コンピューター プログラムに大きなテキストから必要なコンテンツを検索させたい場合は、正規表現を使用できます。正規表現を使用するには次の手順があります。
(1) パターンを探します。
(2) ルールを表現するには通常の記号を使用します。
(3) 情報を抽出します。
A dot は、改行文字を除く任意の a 文字 を置き換えることができます。これには、英語の文字、数字、漢字、英語の句読点、中国語の句読点が含まれますが、これらに限定されません。
アスタリスク は、その前の 部分式 (通常の文字、別のまたは複数の正規表現記号) 0 回から無制限の回数。
上記はすべて許容されます: (アスタリスクは前の式を表します)
上記はすべて許容されます:
これは、「そんな」と「は」の間に「改行文字以外の任意の数の文字」が現れることを意味します。
であることに注意してください。上記のすべてが受け入れられます:
上記すべてが使用可能:
注: ".*?" と " の違い.*"
。 *?これは、要件を満たす最も短い文字列を照合することを意味します。
一文の要約は次のとおりです。
① ".*": 貪欲モード、条件を満たす最長の文字列を取得します。
② ".*? ": 貪欲モードではなく、条件を満たす最短の文字列を取得します。
次の文字列があります:
Asご覧のとおり、このパスワードには左側に英語のコロンがあり、右側に漢字の「you」が付いています。正規表現を作成する場合: .*?結果は次のようになります:
ただし、コロンと漢字の「you」はパスワードの一部ではありません。「12345abcde」のみが必要な場合は、括弧を使用する必要があります: # ### ##### 得る:#########
正規表現では、疑問符、アスタリスク、中括弧、角括弧、括弧など、多くの記号が特別な意味を持ちます。特殊記号を通常の記号に、また通常の記号を特殊記号に変換するには、バックスラッシュを他の文字と組み合わせて使用する必要があります。
正規表現で 1 桁を表すには「\d」を使用します。
2 つの数値を抽出する場合は \d\d を使用でき、3 つの数値を抽出する場合は \d\d\d を使用できます。しかし、この番号の桁数がわからない場合はどうすればよいでしょうか?任意の数値を表すには * 記号を使用する必要があります。
すべては次の正規表現で表すことができます:
Pythonの正規表現モジュールの名前は「re」ですが、これは「正規表現」の略です。 Python では、このモジュールを使用する前にまずインポートする必要があります。インポートされたステートメントは次のとおりです:
import re
Python の正規表現モジュールには、要件を満たすすべての項目を list 形式で返すことができる findall メソッドが含まれています。 ### 弦。 findall の関数プロトタイプは次のとおりです。
re.findall(pattern,string,flags=0)pattern は正規表現を表し、string は元の文字列を表し、flags はいくつかの特殊な関数フラグを表します。 findall の結果は、一致するすべての結果を含むリストです。一致する結果がない場合は、空のリストが返されます。 特定のコンテンツを抽出する必要がある場合は、無関係な情報が取得されないように、かっこを使用してコンテンツを囲みます。複数の「(.*?)」が含まれている場合に返すにはどうすればよいですか?図 3-2 に示すように、返されるものはリストのままですが、リスト内の要素はタプルになり、タプルの最初の要素は口座番号、2 番目の要素はパスワードになります。
ここでは、例として改行の無視を説明します。改行を無視するには、「re.S」フラグを使用する必要があります。
一致した結果に「\n」という記号が表示されますが、何も得られないよりはマシです。コンテンツ内の改行は、後でデータをクリーニングするときに置き換えることができます。
ただし、search() は要件を満たす最初の文字列のみを返します。 ###。要件に一致するものが見つかると、検索を停止します。これは、非常に大きなテキストから最初のデータのみを検索する場合に特に便利で、プログラムの実行効率を大幅に向上させることができます。 search() の関数プロトタイプは次のとおりです:
結果については、一致が成功した場合は正規表現オブジェクトとなり、データが一致しなかった場合は None になります。
一致する結果を取得する必要がある場合は、.group() メソッドを使用して内部の値を取得する必要があります。
.group() のパラメータが 1 の場合のみ、正規表現の大括弧内の結果が出力されます。
.group() パラメータは、正規表現内の括弧の数を超えることはできません。パラメータ 1 は最初の括弧内のコンテンツを読み取ることを意味し、パラメータ 2 は 2 番目の括弧内のコンテンツを読み取ることを意味し、以下同様となります。
1.3.3 コンパイルメソッド
#1.4 正規表現抽出テクニック
1.4.2 括弧内 括弧外
括弧内には他の文字を含めることができます。
括弧内に他の通常の文字がある場合、それらの通常の文字が取得結果に表示されます。
推奨学習:
Python ビデオ チュートリアル
以上がPython 正規表現の知識ポイントを要約して整理するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。