python&正規表現&拡張

2792 ワード

一、よくある応用シーン
1.1ユーザ入力が仕様に適合することを検証する.
1.2データ洗浄、テキスト照会二、規範
2.1個々の文字に一致
\d
一致数0~9(10進数)
\D
一致する数字以外の文字
\w
数字、アルファベット、アンダースコアの一致;->使用を慎み、中国語などのUnicodeコードにもマッチします
\W
数字のアルファベットの下線の中国語以外の文字を一致させる
\s
空白文字列に一致します.t,r,,スペース,tabキーなどを含む
\S
空でない文字列の一致.
改行文字以外の任意の文字を一致させることができます
[]
内部の任意の単一文字に一致することができ、それらの地位は平等である.だから蛇に足を添えるのではなく、「space」などをつけてください.[^]は中括弧内の原子を除いて一致できることを示す.abcがa,b,cを除く任意の文字に一致する場合、abcはaのみを除去するのではなく、除去されることに注意してください.

2.2複数文字の一致
*
一致する前の文字が0回、1回、複数回表示されます.
+
一致する前の文字が1回または複数回表示されます.
?
一致する前の文字が0回または1回表示されます.
{m}
前の文字に一致してm回出現
{m,n}
前の文字に一致するm~n回
{m,}
前の文字に一致して少なくともm回表示

2.3照合先頭と末尾:機能ロケータ
^
マッチングの開始位置を指定します.注:この記号は中括弧の内側の先頭に置いて、「取反」の意味を表します
$
一致する位置を指定

2.4照合グループ
縦棒|
左右のいずれかの式に一致します.曖昧さを避けるため:よく括弧に合わせて使用する(163|126|qq).comは異なるメールボックスに一致します
(ab)
かっこの中の文字を全体として、異なる操作を行います.デフォルトgroup()は、一致するすべてのコンテンツを取り出します.group(1)-最初に一致し、インデックスは最初から始まります.拡張:.*()と1が使用されます
um
参照パケットnumが一致する文字列
(?P)
グループは別名を取り、nameは別名である.注意:括弧が必要です
(?P=name)
参照別名がnameパケットで取得された文字列

2.5 reモジュールの関数
re.match(マッチングモード、ソース文字列、flag-->オプションパラメータ、対応するフラグビットはモード補正子などの情報を置くことができます)
デフォルトでは、ソース文字列の開始位置から一致します.複数の結果が満たされている場合は、最初の文字列のみが返されます.group()でフィルタリングして戻ることができます.場合によっては、パラメータPatternを書くときに^を書かなくてもいいですが、必ず$を書かなければなりませんが、他の言語ではmatchが必ずしもこの使い方ではありません
re.search()
全文から検索してマッチングし、複数の結果が満たされた場合は1つ目のみを返し、group()でフィルタリングして返すことができます.
re.sub(pattern、置換する結果、ターゲット文字列)
一致した文字列を置換し、|全体|(新しい)文字列を返し、一致した内容をすべて置換すると、デフォルトでは文字列で返されます.
re.sub(pattern、関数名、ターゲット文字列、[max-->最大置換回数、書かない場合はデフォルトですべて置換])
一致した文字列の結果をパラメータとして関数に渡し、操作した後、return strは、文字列を返さなければなりません.最後に、置き換えて印刷します.
re.findall(マッチングモード、ソース文字列、[flag])
re.findall()はgroup()を必要とせず、リストとして返されるすべての正しい一致の結果を自動的に返します.一部の場所は「re.comlile(pattern).findall(string)
re.split()
一致に基づいて文字列を切断し、リストを返します.
マッチング成功後の(フィルタ後の)表示方法
一致結果group()は、一致した結果を文字列の形で示す.一致結果span()は、(0,8)のように、マッチングに成功した停止インデックスをメタグループとして示す

2.6貪欲マッチングと非貪欲マッチング1.条件が成立する条件の下で、pythonはデフォルトで貪欲で、マッチングが成立する条件の下で、マッチングが多ければ多いほどが良い.
2.?--->非貪欲、成立、マッチングが少なければ少ないほど良い3.,*,?,{n,m}]の後ろに非貪欲なが接続できます.
4.通配字左から右への順序で値を求める場合、一致する最長文字列をできるだけ「キャプチャ」します.

2.7 r-->raw:元の文字列
1.正規表現に.*などの一般的な文字が使用されている場合.画像のURL「XXX.jpg」を抽出するなど、転義が必要である.エスケープするには2.python解釈器では、デフォルトでは特殊な意味を持つ文字列をエスケープするため、元の文字列に2つの反スラッシュが表示される場合があります.マッチングモードでは、マッチングを成功させるには、元の文字列の2つの反スラッシュをそれぞれエスケープして元の2つのの意味を表す必要があります.そのため、2倍のが必要で、\になります.
3.r解決を導入する:エスケープ再エスケープ、rを加えた後、元の文字列と一致するだけで、これ以上追加する必要はありません.エスケープは必要ありません.rを加えるかどうかは違いません.
三、demo
1.メールボックスに一致する2.一致電話3.Webページの画像http を抽出する
引勾网职位情报処理...