Pythonの正規表現を詳しく解説

silencement
silencementオリジナル
2019-06-05 11:03:384126ブラウズ

Pythonの正規表現を詳しく解説

正規表現の概念

正規表現は文字列操作の論理式であり、事前定義された特定の文字とこれらの特定の文字の組み合わせを使用します。この「ルール文字列」は、文字列のフィルタリング ロジックを表現するために使用されます。

正規表現の構文規則

正規表現の大まかな一致プロセスは次のとおりです:

1. 式を取り出して比較します。テキスト内の文字数

2。すべての文字が一致する場合、一致は成功します。一致しない文字が存在すると、一致は失敗します。

3. 式に量指定子または境界がある場合、プロセスは若干異なります。

以下は、Python の正規表現の一致ルールの一部です

#(\n)## 貪欲でない方法で、前の正規表現で定義された 0 または 1 つのフラグメントと一致します。re { n}## re{ n,} # #(?imx: re)i、m、または x のオプションのフラグを括弧内で使用します##(?-imx: re)##( ?#.. .)#\S は、[^ \f\n\r\t \v と同等の空でない文字に一致します。 ]。 \d##\D#\B\n、\t など

## パターン#############################説明################## ## #^

# 文字列の先頭と一致します

##$

# の末尾と一致します。弦。

.

改行文字を除く一致

# 任意## の文字は、re.DOTALL タグが指定されている場合、改行を含む任意の文字と一致します。

[...] は、個別にリストされた文字のグループを表すために使用されます。 [amk] は、'a'、'm'、または 'k' に一致します。

#[^...]

[] にない文字: [^abc] は、a、b、c 以外の文字と一致します。

#re*

##0 個または複数の一致表現。

1 つ以上の式と一致します。

これ?

##n 個の前の式と完全に一致します。

re{ n, m}

前の正規表現で定義されたフラグメントの n ~ m 倍の貪欲な方法で一致させます

##a| b

##a または b と一致

(re)

##G は括弧内の式と一致し、グループも表します

(?imx)

#正規表現には、i、m、または x の 3 つのオプションのフラグが含まれます。括弧内の領域にのみ影響します。

(?-imx)

正規表現は、i、m、または x のオプションのフラグをオフにします。括弧内の領域にのみ影響します。

#(?:再)

(...) に似ていますが、グループを表しません

括弧内で i、m、または x のオプションのフラグを使用しないでください

#コメント。

#(?= re)

##前方正の区切り文字。 ... で表される、含まれている正規表現が現在の位置と正常に一致する場合は成功し、そうでない場合は失敗します。ただし、含まれている式が試行されると、マッチング エンジンはまったく改善されず、パターンの残りの部分は依然として区切り文字の右側を試行する必要があります。

#(?! 再)

前方負の区切り文字。正の区切り文字の反対。含まれる式が文字列内の現在位置で一致しない場合に成功します。

(?>再)

独立したパターンを照合し、後戻りを排除します。

\w

「[A-Za-z0-9_]」に相当する文字、数字、アンダースコアと一致します。

\W

英数字以外の文字とアンダースコアに一致します。「[^A-Za-z0-9_]」と同等です。

\s

[\t\n\r\f] に相当する任意の空白文字と一致します。

[0-9] に相当する任意の数値と一致します。

は、[^0-9] に相当する任意の非数値に一致します。

\A

文字列の先頭と一致します

##\Z

# 文字列の末尾と一致します。改行がある場合は、改行より前の文字列の末尾のみが一致します。 c

\z

##一致文字列の終了

\G

最後の一致が完了した位置に一致します。

#\b

単語とスペースの間の位置を指す単語境界に一致します。たとえば、「er\b」は「never」の「er」と一致しますが、「動詞」の「er」とは一致しません。

## 単語以外の境界と一致します。 「er\B」は「動詞」の「er」と一致しますが、「never」の「er」とは一致しません。

## 改行文字と一致します。タブ文字と一致します。お待ちください

##\1...\9

n 番目のグループの内容と一致します。

#\10

n 番目のグループの内容が一致する場合は、その内容と一致します。それ以外の場合は、8 進数の文字コードの表現を指します。

#

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

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