パケットの再モジュール、
>>> 輸入再 >>> re.findall(" AB | C "、" sdfab | csdf " ) [ ' AB '、' C ' ] >>> re.findall(" AB | CD "、「sdfab | cdsdf " ) [ ' AB '、' CD ' ] >>> re.findall(" ABC + " " abccccc ") [ ' abccccc ' ] >>> re.findall(" ABC * "、" abccccc " ) [ ' abccccc ' ] >>> re.findall(" (ABC)+ "、" abcabcabcabc " )#分组 [ ' ABC ' ] >>>再.findall(" (ABC)* "、" abcabcabcabc " ) [ ' ABC '、'' ] >>> re.findall("ABC + " "abcabcabcabcabc " ) [ ' ABC '、' ABC '、' ABC '、' ABC '、' ABC ' ]
使用方法検索パケット(のみオブジェクトを返します)
>>> re.search(" ?(P <名> \ +)W "、" abcccc " ) <re.Matchオブジェクト。スパン=(0、6)、一致= ' abcccc ' > >>> re.search(" + W \(?P <名前>)"、" abcccc " ).group() ' abcccc '
グループ名に基づいてコンテンツを抽出
>>> re.search(" (?P <名前> [AZ] +)\ D + "、" john18musicxiaoming20movie ").group(" 名前" ) ' ジョン' >>> re.search(" (?P <名前> [AZ] +)(?P <年齢> \ D +)" " john18musicxiaoming20movie ").group(" 年齢」) ' 18 ' >>>
reモジュールの他の一般的な方法
Re.match >>>(" \ D + "、" 44safs45asdf321saf789 " ).group()#はの始まりに過ぎない取って、1つのオブジェクトのみを取る ' 44は' >>> re.split(" "、" Hello Worldの" )を押し#境界スペースとして取ら [ ' こんにちは'、' 世界' ] >>> re.split(" | [] "、" Hello Worldの| AAA " ) [ ' こんにちは'、"世界「」AAA ' ] >>> re.split(" [AB] "、" safdbds " )境界AB#を押すとし 、[ ' S ' ' FD ' ' DS ' ]
- 交換します
>>> re.sub(" \ D + "、" A "、" a1sd4fg45h " ) ' aAsdAfgAh ' >>> re.sub(" \ dの"、" A "、" a1sd4fg45h " ) ' aAsdAfgAAh ' >>>再.SUB(" \のD + "、" A "、" a1sd4fg45h "、2 ) ' aAsdAfg45h '
= re.compile >>>(" \ + D " )ルール#定義 >>> a.findall(" safsd12a45 " )#ダイレクトコール(複数回呼び出すことができる) [ ' 12 '、' 45 ' ]
Re.finditer >>>(" \ D + "、" asfa45saf56 " )#イテレータデジタルメモリに <0x00000220B1E50E80でcallable_iteratorオブジェクト>
内部の内容を取得します
>>> B = re.finditer(" \のD + "、" asfa45saf56 " ) >>> 次の(B) <re.Matchオブジェクト。スパン=(4,6)、一致= ' 45 ' > >>> 次の(B) <re.Matchオブジェクト。スパン=(9,11)、一致= ' 56 ' >
優先順位
>>> re.findall(" のwww \(Baiduの|。123)\ COM。"、" www.baidu.com " ) [ ' 百度' ] >>> re.findall(" のwww \(?:Baiduの。| 。123)\ COM " " www.baidu.com " )# ':?'去掉优先级 [ ' www.baidu.com ' ]