正則表達式是一個非常強大的處理字符工具,但有時可讀性很差、晦澀難懂,Jamie Zawinski 說道:
創(chuàng)新互聯(lián)是一家專業(yè)提供文成企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、網(wǎng)站制作、H5頁面制作、小程序制作等業(yè)務(wù)。10年已為文成眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。
Some people, when confronted with a problem, think, “I know, I’ll use regular expressions.” Now they have two problems.
本來是一個問題,引入正則表達式之后就成了兩個問題。其實并不是任何場景都需要正則表達式。在簡單場景,能用字符串自己提供的方法解決問題就沒必要用正則表達式,比如字符替換
判斷字符串是否以某字符開頭
re.match() 與 re.search()
re.match 從字符串的起始位置匹配,如果沒匹配成功就不再往后匹配,返回 None。而 search 雖然也是從起始位置開始匹配,但是如果在起始位置沒有匹配,就繼續(xù)往后匹配,直到匹配為止,如果匹配到字符串末尾都沒有匹配則返回 None
不分組的括號
我們知道正則表達式中括號可以用于分組提取,有時我們并不希望括號用于分組該怎么辦,答案是使用 (?:),看一個例子,用正則表達式提取URL中的各個組成部分
上面雖然寫了7對括號,但其實只有5個分組。下面是不使用 ?:,出現(xiàn)了 7 組數(shù)據(jù)
貪婪匹配
正則表達式默認(rèn)是貪婪匹配的,也就是說它會在滿足匹配條件的情況下盡可能多的匹配字符,例如這里有一段話:
html ="""
Today a quick article on a nic
Read more ...
里面有兩對
標(biāo)簽,如果你只想匹配第一對,使用
.*
會從第一個開始,匹配到最后一個
,如果要想盡可能少匹配則可以在元字符后面加 ?