簡単に始められる非貪欲なマッチングの正規表現 詳細編
ノングリーディーマッチング {コード
{{コード
画像
通常、マッチングルール "456(. *?) 789" が複数ある場合、findall() 関数は文字列の先頭からテキストAを探し始め、次にテキストBを探し始めます。最初のテキストBが見つかると、検索は一時的に停止し、テキストAとテキストBの間の内容がリストに格納されます。その後、テキストAの検索を続け、文字列の末尾に達するまで前のステップを繰り返し、マッチした内容をすべてリストに格納します。
(. *?)
import re
a = '456qwe789rty123abc'
re = re.findall('456(. *?) 789',a)
print(re)
画像
欲張りモードは、最も長いものを探します
import re
a = '456qwe789rty123456kkk789abc456xiaowang789'
re = re.findall('456(. *?) 789',a)
print(re)
画像
ノングリードマッチ
import re
a = '456qwe789rty123456kkk789abc456xiaowang789'
re = re.findall('456(. *)789',a)
print(re)
{{コード
画像
. *?
import re
a='<a href="https://blog.csdn.net/weixin_42403632/article/details/120825546" rel="external nofollow" target=& quot;_blank" data-report-click="{"spm":"3001.5501"}" data-report-query="spm= 3001.5501" data-v-6fe2b6a7="">'
re=re.findall('<a href="(. *?) " rel="external nofollow" rel="external nofollow" . *?' ,a)
print(re)
" and the html code after the url
と
. *?
の略で、抽出する必要があるのは
<a href="
{{コード ブログカラムのURLをクローリングする練習
{{コード {{コード
import re,requests
url='https://blog.csdn.net/weixin_42403632/category_11076268.html'
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0'}
html=requests.get(url,headers=headers).text
re=re.findall('<a href="(. *?) " rel="external nofollow" rel="external nofollow" . *?rel="noopener">',html)
for i in re:
print(i)
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン