正規表現
正規表現は、実際に、お問い合わせやその他の行為を、取得チェックを支援するために特別な文字列で、文字列操作のための論理式は、
「通常文字」「文字のルール」の文字を表現するフィルタリングロジックで構成される特定の文字のいくつかの事前定義された組み合わせ、及びこれら特定の文字、。
Pythonは、正規表現のためのメカニズムを提供します:モジュールの再インポートする必要があります
正規表現の使用シナリオ
検証の役割:パスワード認証は、メールボックスの電話番号などのユーザー名を確認します
爬虫類:クエリチェック
正規表現のルール
強力な正規表現の処理ツールの文字列は、独自の構文を持っており、正規表現エンジンを有する別個の契約を結んでいます。
システム自体によって提供される低弦よりも正規表現の処理効率のシステムを完成することができた場合、あなたは正規表現を持っていません
あるいは----文字列内の小文字をB --- Bシステムは、システムを完成するために直接使用することができる置換されています
あるいは---- B第二の代替システムに最初に取って代わるであろうが完了できない---正規表現を用いたM
REモジュールの従来の方法で
... 1再コンパイル(正規表現構文)
生成されたオブジェクトに対応する正規表現構文を容易に正規表現を再利用する能力は、正規表現であります
2.正規表現オブジェクトの.match(認証される文字列)
正規表現の構文は、制限の頭と尾でない場合は、正規表現の文字列は、文字列の先頭に対応するかどうかを検証します
あなたは、文字列の長さを制限している頭と尾を制限した場合、文字列は、コンテンツが正規表現のニーズを満たすかどうかを確認します
試合は、リターンなしを満たしていないために返されたオブジェクトを満たしていない場合
3.正規表現オブジェクト.search(文字列が検索されます)
ある場合、戻りなしを見つけることはできません戻り値を見つけるために、最初のセクションの内容を検索し、インデックスしてもらう文字列の内容を、対応する正規表現Matchオブジェクトがあるかどうか、検索する文字列を検索
4.正規表現オブジェクト.findall(文字列が検索されます)
リストに保存されているすべての文字列のニーズを満たすために、コンテンツに対応する正規表現文字列の内容があるかどうかを検索する文字列を探します
正規表現オブジェクト.SUB(正規表現、文字列を置き換える、元の文字列)
で検索される各マッチした文字列のサブストリングを交換した後、戻り値の文字列置換
定期的なルール
1 マッチング英数字W \とアンダー 2 \ Wを英数字以外に下線を一致さ 。3 \ Sは、[\ T \ N- \ R&LT \ F]に相当する任意の空白文字と一致 。4 \ Sは、任意の非ヌル文字に一致する 。5 \ Dが一致しますデジタル 6 \ Dは、任意の非数値と一致する 。7 文字列の先頭に一致する\ 。8 本、ラップ、ラップを一致文字列の唯一の前端場合\は、文字列のZ端と一致 。9 \ Zは、文字列の末尾と一致 10 \ Gマッチ最後の完全な一致を位置 。11 \ n型と一致改行 12がある \ Tタブ一致した 13 ^ 初めマッチした文字列 14を $マッチする文字列の末尾に 15を 。改行以外の任意の文字に一致し、re.DOTALLフラグが指定されている、それがあります任意の文字を含む改行一致 16 [...]文字のセットを表すために使用され、別々に記載されている:[AMK]は、MまたはKと一致する 17。[^ ...]ではない[]の文字:[^ abc]は、B、Cの文字にマッチすることに加えて 18 *は、 表現のゼロまたはそれ以上の一致する 19 + 表現の一つ以上に一致します 20 ?直前の正規表現の定義は、非貪欲実施形態と一致0またはフラグメント 21れる {n}は、正確に最初のnに一致表す 22である {M、M}は、先行する正規表現の定義セグメントによってm倍にN一致します、貪欲 23で | Bが一致またはB 24()はグループを表し、また、括弧内の式と一致
再戦()
re.match(パターン、文字列、フラグ= 0)
一致しない場合、開始位置は、一致()はNoneを返し、文字列の開始位置からのパターンに一致するように試みます
インポートの再 コンテンツ = " こんにちはWorld_Thisは4567 123 REGEXデモです" 結果 = re.match(' ^こんにちは\ S \ D \ D \ D \ S \。4 {D} \ S \ 10 {W}。$ *デモ' 、コンテンツ) 結果 = re.match(" ^こんにちは。* $デモ"、コンテンツ) #のパンが一致し、上記以外の単純な書き込み 結果= re.match(' ^こんにちは\ S(\ + D)\ sWorld。* $デモ'、コンテンツ)#の試合特定のターゲット文字列、使用して()囲まれた 印刷(結果) を印刷する(result.group()) #取得試合結果 を印刷(result.span()) #の文字列の長さが一致する資格がありますスコープ
。1 インポート再 2 。3文字列= 「」「もしあなたが偉大な才能を持っている必要があり、業界ではそれらを改善します; 。4 あなたは適度な能力を持っていますが、お持ちの場合は、。 5。 業界は、彼らの欠乏を供給します。」「」 6。 7。 #1)メタ文字。 8 #通常の文字、文字、下線、およびその他のデジタルASCIIコード文字 。9 PAT R&LT = ' A ' 10の #非印刷文字 。11 PAT R&LT = ' \ N- ' 12は、 RET = re.findall(= PATパターン、文字列= 文字列) 13は、 14 #2)ワイルドカード 15 #文字列のクラス表現する特定の特殊文字をY 16 「」 ' 。17 W任意の文字\、数字、アンダー 18は、 Wは任意の非英数字下線で\ 19 \ D任意の数 20である D \ 21は \ Sブランク 22は \のS さ23 [ABC]が一致し、BまたはC 24 [FA--P1-5]は任意のAF APまたは1-5または一致 25 [^ ABC]を非文字列abcのいずれ 26 ' '' 27 PAT = R&LT ' [^ ABC] ' 28 PAT = R&LT ' [^ AF] ' 29 PAT R&LT = ' \ W ' 30 RETを= re.findall(= PATパターン、文字列= 文字列) 31は、 プリント(RET) 32 #特殊文字 33は、 '「」 34 。目に見える文字 35 ^マッチする文字列の先頭から 36 $終わる文字列を何後 37 へ複数回繰り返し+を 38 に複数回繰り返される* 0を 39 ?0繰り返し又は1 40 {M}すべて{M}最もmにおける繰り返しm回繰り返し{{M}を} N- 41である '' ' 42は、 PAT = R&LT ' ^場合+ \ N-。+ \ N-。+ ' 43は #+ $'。もし^ PAT = R&LT' 44である RET = re.findall(= PATパターン、文字列= 文字列) 45 印刷(RET) 46が 47 #)。3補正モード 48 #あなたは、補正モードを入力したい場合はcomplileが必要正規表現は、通常のターゲットを作成する 49 #は、複数の行として文字列が行Re.S 50 #プロセスの複数の単一の行に複数の行にre.M列を れる51 #re.Iがケース無視 52である PAT = re.compile(R&LT ' ^場合。+ ' 、re.S) 53は、 RET = pat.findall(文字列) 54が プリント(RET) 55 56である #4)貪欲と怠惰パターン 57である文字列= " afadfasadfafapyasdfadsfapyafadpypyafasdfapyasfasdfdaspyafafdaspyrtyui " 58 PAT = re.compile(R&LT "*のPy ")#貪欲モード:ルールに従っ最後探しは、文字列のルールに沿ったもので、これまでに発見された 59 PAT = re.compile(R " * Pyを。?")#レイジーモード:文字列の検索だけですぐに停止規則に従って規則に準拠見つける 60 RET = pat.findall(String)を 61 印刷(RETを)