Pythonの正規式の最初の外観(6)

Pythonの正規式の基本を引き続き共有します。今日共有される正規式の特別な記号は「[]」です。角括弧は非常に実用的で特別な意味があります。つまり、角括弧内の文字はいずれか1つを満たすだけで済みます。使用法は3種類あり、それぞれ特定のコードで示され、最後に要約されます。具体的なチュートリアルは次のとおりです。

1、 次の図に示すように、一致モードは[abcd]です。ここで、正規表現は、文字列の最初の文字がabcdの4文字のいずれかであることを意味し、一致条件が満たされた場合、次の文字は「cpeng123」になります。 、結果が出力されますが、満たされない場合は下図のように結果は表示されません。

明らかに、元の文字列の最初の文字はdであり、これは一致するパターンに接続されているため、結果が出力されます。

2、 わかりやすくするために、下の図に示すように、元の文字列が「acpeng123」に変更され、他の部分は変更されていません。

マッチング結果が「acpeng123」であり、マッチングが成功していることがわかります。

3、 角括弧の意味をさらに理解するために、次の図に示すように、元の文字列が「ecpeng123」に変更され、他の部分は変更されていません。

この時点で、括弧内に対応する一致する文字がなく、一致する要件を満たすことができないため、結果が出力されていないことがわかります。したがって、出力はありません。

4、 次の例を見て、実際のアプリケーションで非常に一般的な電話番号を抽出します。角括弧を表す別の方法、つまり[0-9]を次に示します。この特殊文字は、0から9までの任意の文字を表します。次の一致パターン「(1 [34578] [0-9] {9})」は、文字列が1で始まり、2番目の文字が3、4、5、7、および8のいずれかであることを意味します。の文字は0から9までの数字ですが、9回に制限されています。つまり、電話番号の長さは1 + 1 + 9 = 11桁です。上記の一致要件が満たされている場合、出力は成功します。それ以外の場合、文字は出力されません。

上の図に示すように、元の文字列が一致要件を満たしていることは明らかであるため、出力結果があります。

知識の拡大:[az]は26の英語の小文字を表し、[AZ]は26の英語の大文字を表します。

5、 さらに理解を深めるために、下図のように元の文字列を160から始まる数字に変更して出力してください。

出力結果がないことがわかります。

6、 角括弧の使用法の第3章は[^]であり、特殊文字「^」が角括弧に追加されています。これは、否定されていないことを意味します。たとえば、「[^ 1]」は、文字が1に等しくないことを意味します。次の図は、コードのデモンストレーションです。

2番目の文字の後に、一致ルールに一致する1が文字列にないため、元の文字列が一致パターン '(1 [34578] [^ 1] {9})'に正常に一致していることがわかります。

次の図に示すように、元の文字列に数字以外の文字が含まれていても、1でない限り、正常に一致させることができます。

7、 理解を深めるために、最初に元の文字列の番号を「18042682515」に変更し、文字列の後に1を追加すると、次の図に示すように、マッチングモードは変更されません。

元の文字列に1が表示され、マッチングモードでは1が表示されない必要があるため、この時点では出力結果がないことがわかります。そのため、マッチングは失敗します。

8、 最後に、括弧の目的を特殊文字で要約します。

  1. [abcd]などの括弧内の任意の1文字は、4文字a、b、c、およびdのいずれかを表します。

  2. [0-9]など、0から9までの数字のいずれかを表す間隔を表します。同様に、上記の意味である[az]、[AZ]はここでは繰り返さない。

3.否定または否定を意味します。特殊表現は[^]です。たとえば、一致パターン[^ 1]は、一致した文字が1ではないことを意味します。

4.一致パターン[。]などの角括弧内の「。」または一致パターン[]などの「」は、純粋に「。」および「*」記号を表し、特殊文字を表すものではなくなりました。任意の文字またはの複数の出現の意味、この点は特別な注意が必要です。

ブラケットはパターンマッチングの過程で非常に一般的に使用されます。すべての友人がそれを理解して習得できることを願っています。

- - - End ---

Recommended Posts

Pythonの正規式の最初の外観(6)
Python正規表現の簡単な紹介
まず、Ubuntu17.10の新機能を見てください
python開発[最初の記事]
python_正規式学習