まず、正規表現の紹介
正規表現の公式文書:https://www.runoob.com/regexp/regexp-tutorial.html
正規表現:正規表現も、正規表現、正規表現、正規表現、従来の表記法として知られている(英語:正規表現、コードは多くの場合、正規表現、正規表現またはREと略す)、コンピュータサイエンスの概念であります。単一の文字列、構文規則のシリーズにマッチする文字列の使用を記述するための正規表現。多くのテキストエディタでは、正規表現は、検索パターンに一致するテキストを置き換えることは通常です。
式に一致する一定のルールによります。
第二に、定期的な導入
正規表現は、一致する文字列、または抽出するために使用される文字列のためのツールです。
1は、それが与えられた文字列の形式と一致するか否かを判断する(フォーマットは、ユーザーアカウントの決意を満たします)
図2は、文字列から、指定された情報の形式を抽出する(電話番号をフェッチ)
インポートのRe str1が = 「fijiooe18814726275iufdrrrrdf18814726275fsdssa 」 #が発見ルール定義 #の電話番号を見つける必要があることが知られて p型= 「18814726275 」 #の検索を():前後からデータを検索し、デフォルトで返された最初のデータが見つかり、続行されません取り戻す RESが= re.search(P、STR1).group() 印刷(RES)
第三に、メタキャラクタ
これは、単一の文字を表し、
文字 | 機能 |
。 | (\ nを除く)任意の文字と一致 |
[] | マッチング文字は[]にリストされています |
\ dは | 数字をマッチング、それは、0-9であります |
\ D | マッチング非デジタル、それが数値ではありません |
\ sの | 空白スペース、タブキーをマッチング |
\ S | 非空白マッチング |
\ワット | 単語文字、つまりAZマッチング、AZ、0-9、_ |
\ W | 非単語文字と一致 |
それは数を表し
関連するフォーマットは、複数の文字にマッチします。
文字 | 機能 |
* | 文字は、それは必須では試合前にゼロまたは無限回現れます |
+ | 文字は、それは少なくとも1であり、試合前に一度または無制限の時間を表示されます |
? | 直前の文字が1またはnoneのいずれかがあることを、一回またはゼロ回以上現れるマッチします |
{M} | M回文字が試合前に表示されます |
{M} | 文字は、少なくともmは試合の前に現れました |
{M、N} | 文字がm〜n個の試合前に少なくとも一度表示されます |
境界表現
文字 | 機能 |
^ | 文字列の先頭にマッチします |
$ | 文字列の末尾 |
\ B | 単語の境界にマッチします |
\ B | 非ワード境界をマッチング |
パケットマッチング
文字 | 機能 |
| | 任意の式で一致について |
(AB) | グループとしてかっこ文字 |
\ナ | NUMマッチした参照パケット列 |
(?P <名前>) | 某パケット |
(?P =名) | 参考パケットは、エイリアス名の文字列にマッチします |
四、再モジュール
-
re.match機能
re.match機能は、上の文字列のパターンマッチングが成功したのは、リターンが一致するオブジェクトである(試合の開始位置が成功しない場合、オブジェクトは、私のIMの恵みに一致する情報が含まれ、一致()の開始位置から一致させようとしますそれはNoneを返します。)
-
re.search方法
re.search()は、文字列全体をスキャンし、最初の文字に成功したマッチを返します。
-
Re.matchと差re.search
文字列が正規表現を開始するために準拠していない場合re.matchは、文字列の始まりに過ぎないと一致して、マッチが失敗し、関数はNoneを返します;と一致するものが見つかるまで、文字列全体にマッチre.search
-
findAllメソッド
文字列式で正見つかったすべての部分文字列にマッチした、と一致するものがない場合は、リストとして返されます。これは、空のリストに返されます。
-
注意:マッチと検索が一致であり、すべてのfindAll一致。
-
サブ方法
文字列内の特定の文字を置き換え、正規表現を使用してサブストリングに一致するように選択することができます。
re.sub(パターン、REPL、文字列、= 0をカウント)
-
- パターン:正規表現パターン文字列のサブ。
- repl:被替换的字符串(既可以是字符串,也可以是函数)
- string:要被处理的字符串,要替换的字符串
- count:替换的次数
五、贪婪模式
python中数量词默认是贪婪模式,总是尝试匹配尽可能多的字符;非贪婪模式相反,总是尝试匹配尽可能少的字符。
在 *、?、+、{m,}、{m,n}后面加上?,可以使贪婪模式变成非贪婪模式。