ALI - 數據研發- 二面 python中正則化的使用

最近被問到了python中正則化的使用,以及如何寫出匹配表達式:

題目如下:

 

<div class="nam">中國</div>,用正則匹配出標籤裏面的內容(“中國”),其中class的類名是不確定的

 

答案:

import re
str1 = '<div class="nam">中國</div>'
res = re.findall(r'<div class=".*">(.*?)</div>',str1)
print(res)

其中的解釋:

findall

在字符串中找到正則表達式所匹配的所有子串,並返回一個列表,如果沒有找到匹配的,則返回空列表。

注意: match 和 search 是匹配一次 findall 匹配所有。

Python中字符串前面加上 r 表示原生字符串;

.*具有貪婪的性質,首先匹配到不能匹配爲止,根據後面的正則表達式,會進行回溯。
.*?則相反,一個匹配以後,就往下進行,所以不會進行回溯,具有最小匹配的性質。

. 匹配任意除換行符“\n”外的字符;

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