python - モジュールの再(正規表現)

定期的なオンラインテスト  http://tool.chinaz.com/regex  

 

\エスケープ文字

 

文字[ABC]マッチングブラケット

文字[AC]はACに一致します

文字[-DM-P]またはマッチング広告の融点

の改行\ nを除く任意の単一文字に一致

\ Wは、数字、アンダースコア(AZ AZ含む)単語文字のアルファベットにマッチします

\ Wは\以外の文字にマッチするのワット

\ Sは、(改行\ N-、キャリッジリターンの\ R&LT、\ F改ページタブの\ T、垂直タブの\ Vを含む)任意の空白に一致します

\ Sは\ sの以外の文字にマッチします

\ D一致番号(0--9)

\ Dはdは\以外の文字にマッチします

\ nは    改行 \ nは

\ Tマッチ]タブ

\ BのABを有するB AB \終了単語マッチ終了単語のは[境界セパレータとすることができる スペース、カンマ、 - 、期間]

\ Bは単語、abで終わらないように、AB \ Bとして、非単語境界に一致します

^     文字列の先頭    ^ GHのGH列ヘッドがあります

[^ X] Xは、非意味以外の任意の文字に一致し

[^ abc]は、ABCの三文字以外の任意の文字に一致し

$の     マッチング文字列尾   GH $ GHは、文字列の終わりです

AE | Bの     試合 AEまたはb    [最初の左と右の  AB | ABC マッチ ABが一致していません ABC]を

()グループ化  

第一のセットの右の順序左から左括弧による \ 1などの背後にグループ化され、コンテンツの最初のセットと同じ表すコンテンツ同じと \ 1  、即ち(暗黙グローバルパケットがあることに注意してください 0 )、それは全体の正規表現です

(?P <名前> ......)元の数に加えて、その後の後ろ、グループの名前を指定したコンテンツと同じと(?P =名)

 

findAllの分割パケットの優先度を持っています

{N} n回

{N} n回以上よりN倍

{N、M}のn -m繰り返し回数

{N}?n回繰り返さを最小化

{N}?N倍以上少ない繰り返ししようとn回

{N、Mは}?Nmが二回繰り返し最小化するように繰り返し

*は、0回以上の繰り返し回数を  [多くのマッチとして  貪欲マッチ]

*?可能重複として少しとして0回以上の繰り返し

+繰り返さ回または複数      【多くのマッチングとして  貪欲一致]

+?可能重複として少しとして1回以上の繰り返し

?0または1回の繰り返し   

なお、  定規を?  これは、不活性な試合です

。*?xが    発生した Xストップを

文字の後ろのRは普通の文字です

一致しない条件を満たしていない?=正事前調査[前方一致する条件]一致で条件を満たすために、この位置、    

例の\ D {3} - \ dの{8}マイクロソフト表示されていない(=マイクロソフト?)

?!正、負の事前調査[非正条件の一致]条件を満たすために、この位置は一致しません、それが一致する条件を満たしていません    

例\ dの{3} - \ dの{8}マイクロソフトは表示されません(マイクロソフト?!)

?<=事前調査試合の条件を満たすように、この位置を逆に、条件が一致しません満たしていません  

例(<=女の子?)\ D {3} - 前方の\ D {3}条件

|    または、  左から右に一致させるためには、   マッチが右の一致ではありません一度左に、そう長く左側に置きます

 

正規の方法:

 

 

ケースを無視re.I

ワット\特殊文字のre.Lセット、\ W、\ bの、\のB、\ sは、\ Sは、現在の環境に依存します

re.Mマルチラインモード、それが影響する ^ $を、各行は新たな始まりと終わりです

すなわちre.S「」と改行を含む任意の文字を含む(「」改行を含みません)

W \ \ W、\ bの、\のB、\ D、\ D、\ S、\ Sは、Unicode文字プロパティデータベースのデフォルトに依存し、特殊文字のセットre.U

re.Xは戻っコメントと空白文字「#」を無視し、可読性を向上させるために、   

 

 

機能をコンパイル

正規表現をコンパイルするために使用し、正規表現オブジェクトを生成します

構文は: Pは、re.compile(パターン[、フラグ])=

パラメータ 1つのパターン:正規表現の文字列

パラメータ 2つのフラグあるいは、フラグは  このような場合、マルチラインモードを無視したように、マッチングパターンを示します

 

 

 

 

findAll

文字列内のすべての正規表現にマッチした部分文字列を検索し、リストを返し、一致が見つからない場合は、空のリストが返されます

構文:S = re.findall( '\ dの'、 '石灰のtan23guwu468zhong')

パラメータ 1つの    正規表現

パラメータ 2文字列

注:のfindAll 発現の直接的な機能をする場合()、デフォルトの優先度の一致()内部、グループ内の優先順位のグループ化を解除するために添加

例としては、S = re.findall( '?WWW(:   Baiduの| Oldboy).COM。'、 'jhgfwww.oldboy.comhgffd')

パケットに名前を付けることができます(?P <名> \ D +)

 

re.finditer

そして findAllのサブ文字列にマッチする正規表現のすべてを見つけるために、文字列では、同様に、イテレータとして返します

パラメータ 1つの    正規表現

パラメータ 2文字列

パラメータ 3   オプションの  フラグ

戻り値は、 各オブジェクトが必要であり、イテレータオブジェクトである結果を得るために()グループ

S = re.finditer( '\ D +' adff34lkjhg87nhbvf90「)

I S中のために:

    印刷(i.group())

 

 

二つの構文:S = p.findall( '2345lm0987MING654abc87654'、5,18)

P通常のターゲット

パラメータ 1つの文字列

パラメータ 2の開始位置

パラメータ 3終了位置(含まれていません)

例としては     、S = p.findall( '2345lm0987MING654abc87654'、 5,18)

 

re.search方法

全体の最初の文字列をスキャンし、成功したマッチを返します

関数の構文:re.search(パターン、文字列、フラグ= 0)

パラメータ 1つの正規表現

パラメータ文字列にマッチする2

パラメータ 3     オプションパラメータ   等か否かを大文字と小文字を区別し、マルチラインマッチング、次のような方法を正規表現マッチングを制御するためのフラグ

 

マッチが成功していないそうでなければ、re.searchメソッドはオブジェクトのマッチングを返すなし

我々は使用することができます表現にマッチ一致するオブジェクトを取得するためにグループ()関数を戻り値がない場合は、いずれもグループ()文句を言うでしょう

単一のパラメータ(グループ番号)を有する基()、Nパケットシーケンス番号発現のグループ番号 ()数が 1

 

S = re.search(R '[AZ] +'、 '2345lm098KH7654abc87654')

sの場合=なし!

    SS = s.group()

    印刷(SS)

 

re.match機能

ない場合は、文字列の開始位置から、パターンに一致するようにしようとre.match、開始位置の一致が成功し、一致()はNoneを返します

成功した戻りの一致一致オブジェクトを我々は一致するオブジェクト一致発現を得るためにグループ()関数を使用することができ

それはなし、グループ()する場合であれば文句を言うだろう

S = re.match(R '[AZ] +'、 'B2345lm098KH7654abc87654')

sの場合=なし!

    SS = s.group()

    印刷(SS)

 

re.split部門

区切り文字のマッチングとして使用することができ、分割のリストを返します。

構文  S = re.split(パターン、文字列[ 、maxsplit個= 0、フラグ= 0])

パラメータ 1つの正規表現

パラメータ 2文字列

パラメータ 3   オプションの   パーティション番号、maxsplit個= 1を一旦分離し、デフォルトは0であり、数が限定されるものではありません

パラメーター 4つの   オプション   フラグ、などの方法を正規表現マッチングを制御する:大文字と小文字を区別し、複数行マッチングか否か、等

注:グループ化機能

場合は()、保持されるグループ区切り文字以内()

S = re.split( '(\ D +)'、 'adjg24kjbvc76lkjh89uytrc94mhb')

結果 [ 'adjg'、 '24' 、 'kjbvc'、 '76'、 'lkjh'、 '89'、 'uytrc'、 '94'、 'MHB']

 

 

文字列の一致のためのre.sub交換

構文: S = re.sub(パターン、REPL、文字列、COUNT = 0)

パラメータの正規表現   定期的な交換をされたマッチングを

パラメータ 2   の文字列を置換するには、それはまたの関数とすることができます

パラメータ 3元の文字列

パラメータ 4   置換の最大数は、デフォルトの 0は、すべての一致を置き換え表し

文字列置換を返します。

 

S = re.subn( '\ D'、 '|'、 'liming2lixueqian8李')

パラメータの正規表現   定期的な交換をされたマッチングを

パラメータ 2   の文字列を置換するには、それはまたの関数とすることができます

パラメータ 3元の文字列

パラメータ 4   置換の最大数は、デフォルトの 0は、すべての一致を置き換え表し

タプルを返す  最初の置換文字列のタプルである   第2項は番号を交換します

 

 

 

 

 

 

 

長い天皇の傲慢

おすすめ

転載: www.cnblogs.com/liming19680104/p/11323115.html