在實(shí)際應(yīng)用中,利用正則表達(dá)式在文本數(shù)據(jù)中提取特定的字符串時(shí),我們實(shí)際用于定位的正則表達(dá)式卻有一部分是不想要的。舉例來(lái)說(shuō),在以下文本中
........他說(shuō):“別說(shuō)我的眼淚你無(wú)所謂?!比缓笏f(shuō),"滾蛋".....
如果我們想把兩個(gè)人說(shuō)的話提取出來(lái),可以利用雙引號(hào)構(gòu)建正則表達(dá)式,形如 “.*” 但這樣提取出來(lái)的字符串會(huì)包含雙引號(hào)本身。為了去除雙引號(hào),可以使用以下模式:
pattern = re.compile(‘(?<=“).*(?=”)’)
即開(kāi)頭不想要的東西放在括號(hào)()內(nèi),并在前面添加?<=三個(gè)字符,末尾不想要的也放在括號(hào)()內(nèi),前面加?=兩個(gè)字符即可。
當(dāng)然,就本例來(lái)說(shuō),如果為了防止貪婪匹配,可以把中間的任意字符改為非雙引號(hào)的字符,即[^"]*