Python正则表达式尽可能小的匹配(遇到第一个结束字符串就停止匹配)
生活随笔
收集整理的這篇文章主要介紹了
Python正则表达式尽可能小的匹配(遇到第一个结束字符串就停止匹配)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在寫爬蟲爬網頁的時候,經常需要爬取里面的一大塊代碼,比如:
<div>..................................</div></div></div></div>
我們需要省略號里面的代碼塊,如果我們用"*"、"+"就會盡可能多的匹配,就會匹配到最后一個</div>。為了實現我們的需求,我們需要盡可能小的匹配,遇到第一個合適的結束字符就返回。
看下面的例子,就會很快明白了
a = 'd5./;.sdfjk56jfs./jfis54'
b = re.search(r'(.*)f', a)
print b.group(1)
返回的結果是"d5./;.sdfjk56jfs./j"
我們為了遇到一個f就返回,而不是最后一個f才返回,只需要在'*'后加個"?",如下面的代碼
a = 'd5./;.sdfjk56jfs./jfis54'
b = re.search(r'(.*?)f', a)
print b.group(1)
返回的結果是"d5./;.sd"
?
總結
以上是生活随笔為你收集整理的Python正则表达式尽可能小的匹配(遇到第一个结束字符串就停止匹配)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kubernetes目录挂载
- 下一篇: Python爬虫神器pyppeteer