それはデータを抽出したり、爬虫類が頻繁に時間を行うために使用されている正規表現であるかどうか、再モジュールで、次の一般的な使用は語りました。
文字列ではなく、成功したマッチ、マッチ()Noneを返した場合、開始位置の開始位置から、パターンに一致してみてくださいre.match。
関数のシンタックス:
再。マッチ(パターン、文字列、フラグ= 0 )
輸入再 #TODOのre.matchの使用、最初に一致した文字列から始まる コンテンツ= 「こんにちは123 4567 World_this A REGEXデモ」 #文字列マッチングの^ TODOの始まり、文字列の末尾に$のマッチング 結果を= re.match(" ^こんにちは\ S \ {D} 3 \ S \ 4 {D} \ S \ 10 {W} $ *デモ' 、コンテンツ) プリント(結果) #1 TODO一致範囲戻り プリント(result.span()) #のTODOリターンマッチング結果を 印刷(result.group()) #TODO泛匹配 結果= re.match(' ^こんにちは。*デモ$ ' 、コンテンツ) プリント(result.group()) #のターゲットTODOマッチング 結果を= re.match(' ^こんにちは\ S(\ + D)\ S(\ + D)\ sWorld。* $デモ' 、コンテンツ) を印刷(result.group(1)、result.group(2 )) #のTODO貪欲、できるだけ多くの文字に一致する 結果= re.match(' ^彼の。*(\ D +)。* $デモ' 、コンテンツ) を印刷(result.group(1 )) #TODO。*?非貪欲マッチング、などなどいくつかの文字に一致する 結果= re.match(' ^彼の。*?(\ D +)。*デモ$ ' 、コンテンツ) を印刷(result.group(1 )) 内容 = ''」こんにちは1234567 World_this 正規表現のデモです「」」 #TODOパターンマッチング、re.Sマッチングラップ 結果re.match =(' ^彼の。*?(\ + D)。*?デモ$ ' 、内容、re.S) 印刷(results.group(1 )) #TODOエスケープ\、試合は特別なエスケープ文字\を追加する必要がある コンテンツを= ' 価格は$ 5.00 ' 結果 = re.match(' 価格は\ $です。5 0.00 \ ' 、コンテンツ) を印刷(結果)
re.search最初の文字列全体をスキャンし、成功したマッチを返します。
関数のシンタックス:
再。検索(パターン、文字列、フラグ= 0 )
「」「ピアレス小説マッチTangmenリンクを「」」 インポート再 インポート要求 RESP = requests.get(' http://www.jueshitangmen.info ' ).textの 印刷(それぞれ) #のTODOは、リンクの.cssの終わり得る パターン= ' <*リンクのhref =の? "(HTTP :. *?。CSS)" \ S \ /> ' CSS = re.search(パターン、RESP、re.S) を印刷(css.group(1))
re.findall
すべてのサブ文字列にマッチしたされた文字列で表現を検索し、リストを返し一致が見つからない場合は、空のリストが返されます。
「」「ピアレス一致Tangmenリンク」「」 インポート再 インポート要求を RESP = requests.get(' http://www.jueshitangmen.info ' ).textの 印刷(それぞれ) #のTODOは、すべての.htmlリンクで終わる取得 パターンを= ' <LI> * \ = SHREF。? "(HTTP :. *?。HTML)は" \ SREL ' html_link = re.findall(パターン、RESP、re.S) 印刷(html_link) のための私でhtml_link: 印刷(I)
単一文字列マッチング:
文字列照合の複数:
マッチンググループ:
一般的なパターンマッチング: