Pythonの正規表現(regex)

クリエイティブコモンズライセンス 著作権:帰属、紙ベースを作成するために他人を許可し、(同じライセンスで元のライセンス契約に基づいて用紙配布する必要がありますクリエイティブコモンズ

著作権、許可なしに、禁止されて再版


セクション


正規表現は、検索モードの文字列です。

指定した検索パターンで検索文字列のための正規表現。

正規表現(regex)モジュール

Pythonは呼ばれたre正規表現を処理するためのビルトインパッケージを。

インポートreモジュール:

import re

正規表現でのPython

インポートreモジュールを、あなたは正規表現を使用して起動することができます。

それは最後に、「」、「スペイン」にで始まるかどうかを確認するために検索文字列:

import re

txt = "The rain in Spain"
x = re.search("^The.*Spain$", txt)

正規表現関数

reモジュールは、検索文字列に一致する関数のセットを提供します。

機能 説明
findAll これは、すべてのマッチのリストを返します。
サーチ マッチテキストがある場合は、一致するオブジェクトが返されます
スプリット テキスト文字列を分割し、それが分割テキストのリストを返します。
サブ 1回以上の出現/ TD>の文字列の置換

メタキャラクタ

元の文字は特別な意味を持つ文字です。

文字 説明
[] 文字セット "[午前]"
\ マーク特別なエスケープ文字(特殊文字をエスケープするためにも使用することができます) "\ dを"
(改行文字を除く)任意の文字 "he..o"
^ テキストを開始します 「^こんにちは」
$ 終了テキスト 「世界$」
* 0以上の出現 "AIX *"
+ 1つの以上の出現 "AIX +"
{} 出現数を決定します "アル{2}"
| 若しくは 「|滞在下がります」
() パケットキャプチャと  

特殊文字をエスケープ

特殊なエスケープ文字がされ\、以下のリストから文字が続く、それは特別な意味を持っています:

文字 説明
\ A テキストの先頭に指定した文字列は、その後、試合を返す場合 "\ AThe"
\ B 先頭またはテキストの最後に指定した文字列は、マッチが返された場合 R "\ベイン"
R "のAIN \ bの"
\ B 文字列がテキストの先頭や末尾に指定されていない場合は、一致が返されます R "\ベイン"
R "のAINの\ B"
\ dは テキストは、番号(0-9)が含まれ、マッチを返す場合 "\ dを"
\ D テキストは、数字(0-9)を含有し、一致を返していない場合 "\のD"
\ sの リターンマッチテキストは空白文字が含まれています "\ sを"
\ S 戻り値がテキストに一致する空白文字が含まれていません "\ S"
\ワット テキストは任意の単語文字(Zまでの文字、および0から9までの数字、およびアンダースコア文字_)が含まれている場合、一致を返します。 「\ワット」
\ W 単語は任意のテキスト文字(Zまでの文字、および0から9までの数字、およびアンダースコア文字_)が含まれていない場合は試合を返します "\ W"
\ Z 指定されたテキスト文字列の末尾に、一致するエントリが返された場合 "スペイン\ Z"

セット

これは、角括弧の集合である[]文字のセットで特別な意味を持っています:

セット 説明
[ARN] 戻る指定された文字と一致する(RまたはN)のいずれかと一致
[AN] そして、小文字は一致するn個の間の一致を返します
[^ ARN] 戻り試合は、Rおよびnは以外の任意の文字に一致します
【0123】 戻り値は指定された数(2又は3)と一致すると一致します
[0-9] 戻る0と9試合の間の任意の数を一致させます
[0-5] [0-9] 戻り値は、二桁00〜59のいずれかから試合を一致させます
[A-ZA-Z] 試合があり、z、大文字または小文字の間のアルファベット順に任意の文字にマッチし返します
[+] コレクションでは、+、* ,, |、()は、$は、{}、[+]を意味していない特別な意味は:文字列 "+" 文字の一致を返します。

findAll()関数

findall()関数が含まれているすべてのマッチのリストを返します。

すべてのマッチのリストを印刷:

import re

str = "The rain in Spain"
x = re.findall("ai", str)
print(x)

並べ替えを見つけるためにマッチのリスト。

一致が見つからない場合、それは空のリストを返します。

一致するすべてのエントリのリストを印刷:

import re

str = "The rain in Spain"
x = re.findall("Portugal", str)
print(x)

検索()関数

search() 一致がある場合、それがマッチオブジェクトを返し、検索テキストを照合します。

複数の一致がある場合は、最初のものだけに戻ります。

最初の空白文字での検索テキスト:

import re

str = "The rain in Spain"
x = re.search("\s", str)

print("第一个空白字符位于:", x.start())

一致が見つからない場合、戻りNone値:

ミスマッチ:

import re

str = "The rain in Spain"
x = re.search("Portugal", str)
print(x)

スプリット()関数

split()テキスト文字列のセグメンテーション機能は、分割テキストのリストを返します。

各空白文字でのスプリットのテキスト:

import re

str = "The rain in Spain"
x = re.split("\s", str)
print(x)

あなたは指定することができmaxsplit、分割パラメータの数を制御するために:

最初の一致文字列を分割します:

import re

str = "The rain in Spain"
x = re.split("\s", str, 1)
print(x)

サブ()関数

試合は、指定したテキストに置き換えられます。

番号9と各空白文字を置き換えます。

import re

str = "The rain in Spain"
x = re.sub("\s", "9", str)
print(x)

することによりcount、代替パラメータの数を制御します:

最初の二つを置き換えます。

import re

str = "The rain in Spain"
x = re.sub("\s", "9", str, 2)
print(x)

オブジェクトをマッチング

一致するオブジェクトは、検索と結果に関する情報を含むオブジェクトです。

注意:一致しない場合、なしの値が、むしろオブジェクトに一致するよりも、返されます。

検索は、一致するオブジェクトを返します。

import re

str = "The rain in Spain"
x = re.search("ai", str)
print(x) #打印对象

検索情報を取得するためのプロパティとメソッドを持つオブジェクトをマッチング:

  • .span() これは、開始および終了位置が一致含むタプルを返します。
  • .string テキストは、関数が返すに渡されます
  • .group() マッチしたテキストの折り返し部

第一の位置(開始位置と終了位置)一致を印刷します。

正規表現は、の先頭に大文字の「S」で任意の単語を検索します:

import re

str = "The rain in Spain"
x = re.search(r"\bS\w+", str)
print(x.span())

印刷テキストは、関数に渡されました。

import re

str = "The rain in Spain"
x = re.search(r"\bS\w+", str)
print(x.string)

印刷テキストのマッチング部分。

正規表現は、の先頭に大文字の「S」で任意の単語を検索します:

import re

str = "The rain in Spain"
x = re.search(r"\bS\w+", str)
print(x.group())

注意:一致しない場合、なしの値が、むしろオブジェクトに一致するよりも、返されます。

おすすめ

転載: blog.csdn.net/weixin_43031412/article/details/93846336