經過自己面試的經驗,我幫大家對python的知識點進行歸類,讓大家能在最短時間內掌握核心知識點,更高效地搞定 Python 面試!
今天我為大家總結了python面試中,關於正則表達式的幾個例子!
1.python正則表達式中匹配(match)和查找(search)的區別
答:正則表達式中match和search的方法比較相似
相同點:都是在一個字符串s中尋找pat子字符串,如果能找到,就返回一個Match對象,如果找不到,就返回None。
不同點:mtach方法是從頭開始匹配,而search方法,可以在s字符串的任一位置查找。
編寫的代碼如下:
運行結果:
從結果中,我們可以看出,python中用match和search方法都可以反饋ours中的our字符串,而對於flourish,只有search能返回Match對象,而因為不是在頭部匹配到,所以match方法返回了None。
2.再python中group和groups的區別
答:group和groups是兩個不同的函數。
一般,m.group(N) 返回第N組括號匹配的字符。
而m.group() == m.group(0) == 所有匹配的字符,與括號無關,這個是API規定的。
m.groups() 返回所有括號匹配的字符,以tuple格式(元組格式),不包括
m.group(0),即整個表達式.
m.groups() == (m.group(0), m.group(1),……)
3.python中運用正則去除以下html文件中的標簽,只顯示文本信息。
答:利用python正則表達式re模塊中的sub方法,將標簽替換為空字符串,代碼如下:
編輯
運行結果:python小當家 python面試題匯總
4.python中用正則表達式提取字符串中所有域名:
答:利用sub方法,將整個字符串替換為只含域名的字符串。代碼如下:
運行結果如下:
5.利用python正則表達式,從字符串"hello world luozhixiang"中,提取出所有單詞
答:利用split方法分割空格或者用findall方法尋找到所有的單詞,代碼如下:
運行結果:['hello', 'world', 'luozhixiang']
6.python正則表達式中“.*”和“.*?”的區別
答:表達式 .* 的意思很好理解,就是單個字符匹配任意次,即貪婪匹配。
表達式 .*? 是滿足條件的情況只匹配一次,即懶惰匹配
演示代碼和演示結果如下:
7.利用python語言,使用正則將字符串"羅志祥202004月真的很倒霉,替蔣凡當了3695489點傷害"中,連續5個以上數字替換成*