您好,登錄后才能下訂單哦!
正則表達(dá)式是一個(gè)非常強(qiáng)大的處理字符工具,但有時(shí)可讀性很差、晦澀難懂,Jamie Zawinski 說(shuō)道:
Some people, when confronted with a problem, think, “I know, I’ll use regular expressions.” Now they have two problems.
本來(lái)是一個(gè)問(wèn)題,引入正則表達(dá)式之后就成了兩個(gè)問(wèn)題。其實(shí)并不是任何場(chǎng)景都需要正則表達(dá)式。在簡(jiǎn)單場(chǎng)景,能用字符串自己提供的方法解決問(wèn)題就沒(méi)必要用正則表達(dá)式,比如字符替換
判斷字符串是否以某字符開頭
re.match() 與 re.search()
re.match 從字符串的起始位置匹配,如果沒(méi)匹配成功就不再往后匹配,返回 None。而 search 雖然也是從起始位置開始匹配,但是如果在起始位置沒(méi)有匹配,就繼續(xù)往后匹配,直到匹配為止,如果匹配到字符串末尾都沒(méi)有匹配則返回 None
不分組的括號(hào)
我們知道正則表達(dá)式中括號(hào)可以用于分組提取,有時(shí)我們并不希望括號(hào)用于分組該怎么辦,答案是使用 (?:),看一個(gè)例子,用正則表達(dá)式提取URL中的各個(gè)組成部分
上面雖然寫了7對(duì)括號(hào),但其實(shí)只有5個(gè)分組。下面是不使用 ?:,出現(xiàn)了 7 組數(shù)據(jù)
貪婪匹配
正則表達(dá)式默認(rèn)是貪婪匹配的,也就是說(shuō)它會(huì)在滿足匹配條件的情況下盡可能多的匹配字符,例如這里有一段話:
html ="""<div><p>Today a quick article on a nic</p><p>Read more ...</p></div>"""
里面有兩對(duì)<p>標(biāo)簽,如果你只想匹配第一對(duì),使用
<p>.*</p> 會(huì)從第一個(gè)<p>開始,匹配到最后一個(gè)</p>,如果要想盡可能少匹配則可以在元字符后面加 ?
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。