正則表達(dá)式在線測試工具:http://tool.oschina.net/regex/#
常見匹配模式:
正則:
常規(guī)匹配:
泛匹配 . *:
匹配目標(biāo):
group(n):第n個用小括號括起來的
貪婪匹配:
可以看到group(1)只匹配到了‘7’一個數(shù)字潜沦,因?yàn)?*會盡可能多的匹配字符春瞬,所以稱為貪婪模式匹配
非貪婪匹配:
這次group(1)匹配到了‘1234567’,為什么呢,兔朦?指定匹配模式為非貪婪模式,會盡可能匹配少的字符。
匹配模式:
為什么結(jié)果時None呢?因?yàn)門his后面有個換行符拆魏,而.*不能匹配換行符。但是當(dāng)我們指定匹配模式慈俯,就可以匹配到換行符了渤刃。
轉(zhuǎn)義:
匹配特殊字符是需要使用\進(jìn)行轉(zhuǎn)義
總結(jié):盡量使用泛匹配、使用括號得到匹配目標(biāo)贴膘、盡量使用非貪婪模式卖子、有換行符就用re.S。
如圖刑峡,同樣的字符串洋闽,同樣的正則表達(dá)式,re.match匹配不出結(jié)果氛琢,因?yàn)閞e.match是從字符串的起始位置開始匹配的喊递。
總結(jié):為了方便随闪,能用re.search就不用re.match阳似。
匹配練習(xí):
目的 匹配齊秦,往事隨風(fēng)铐伴。
匹配任賢齊 滄海一聲笑
去掉匹配模式re.S查看一下匹配到了什么
匹配所有含有超鏈接的內(nèi)容:
匹配所有歌名:
把數(shù)字替換成‘替換’兩個字
替換的同時保存原字符串本身撮奏,\1 代表group(1)
使用sub和findall結(jié)合匹配所有歌名: