Python 中正則表達式(.*?) 的理解

在Python開發爬蟲過程中經常會遇到正則表達式,其中(.*?) 的使用概率較高,那麼這個正則表達式到底什麼意思呢?

“.*?” 表示非貪心算法,表示要精確的配對。

“.*”表示貪心算法,表示要儘可能多的匹配

“()” 表示要獲取括弧之間的信息。

 

用一個例子來說明一下。

import re

a = 'xxIxxjshdxxlovexxsffaxxpythonxx'

infos = re.findall('xx(.*?)xx', a)

print(infos)

此時字符串的解析結果應該爲:

xxIxx

jshd

xxlovexx

sffa

xxpythonxx

符合檢索條件的爲:

xxIxx

xxlovexx

xxpythonxx

由於只需要獲取() 之間的數據,所以最終的結果爲:

['I', 'love', 'python']

 

如果使用“.*”表達式,則反饋 去掉頭尾xx 之間的全部數據。

['Ixxjshdxxlovexxsffaxxpython']

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章