公眾號新增加了一個(gè)欄目,就是每天給大家解答一道Python常見的面試題,反正每天不貪多,一天一題,正好合適,只希望這個(gè)面試欄目,給那些正在準(zhǔn)備面試的同學(xué),提供一點(diǎn)點(diǎn)幫助!
小猿會從最基礎(chǔ)的面試題開始,每天一題。如果參考答案不夠好,或者有錯(cuò)誤的話,麻煩大家可以在留言區(qū)給出自己的意見和討論,大家是要一起學(xué)習(xí)的 。
廢話不多說,開始今天的題目:
問:說說Python中search()和match()的區(qū)別?
答:match()和search()兩者都是測試正則表達(dá)式與字符串是否匹配。不同的是,match() 如果在字符串的開頭有0個(gè)或更多個(gè)字符,符合正則表達(dá)式模式,返回相關(guān)匹配的實(shí)例對象,如果字符串不符合正則表達(dá)式模式則返回None;而search()則不同,掃描整個(gè)字符串,如果產(chǎn)生了一個(gè)匹配正則模式就尋找到這個(gè)位置,返回相關(guān)匹配的對象。如果沒有位置能夠匹配這個(gè)模式則返回None。
下面用個(gè)簡單的代碼給大家看一下:
import re
str = "謝謝您,關(guān)注公眾號:程序IT圈";
result = re.match('程序IT圈', str)
print(result); //None
result2 = re.match('謝謝您', str)
print(result2); //<re.Match object; span=(0, 3), match='謝謝您'>
result3 = re.search('程序IT圈', str)
print(result3); //<re.Match object; span=(10, 15), match='程序IT圈'>
result4 = re.search('程序員', str)
print(result4); //None
re.match() 從第一個(gè)字符開始找, 如果第一個(gè)字符就不匹配就返回None, 不繼續(xù)匹配. 用于判斷字符串開頭或整個(gè)字符串是否匹配,速度快.
re.search() 會整個(gè)字符串查找,直到找到一個(gè)匹配。
如果對于參考答案有不認(rèn)同的,大家可以在評論區(qū)指出和補(bǔ)充,歡迎留言!
更多題目:
關(guān)注小猿公眾號,每天學(xué)習(xí)一道題