真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么用python正則表達式解決包含且不包含某字符串的問題-創(chuàng)新互聯(lián)

本篇內(nèi)容主要講解“怎么用python正則表達式解決包含且不包含某字符串的問題”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“怎么用python正則表達式解決包含且不包含某字符串的問題”吧!

創(chuàng)新互聯(lián)建站專注于鎮(zhèn)江網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供鎮(zhèn)江營銷型網(wǎng)站建設(shè),鎮(zhèn)江網(wǎng)站制作、鎮(zhèn)江網(wǎng)頁設(shè)計、鎮(zhèn)江網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造鎮(zhèn)江網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供鎮(zhèn)江網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

本測試使用python的re.compile與re.search作為方法測試包含error不包含abc的實例

python簡單正則里只介紹到了不包含某字符的正則:[^1-9a-z],[^abc]也只能完成不匹配a、b、c三個字母的功能,但是這個并不能實現(xiàn)不匹配"abc“字符串的功能

這里要用到正則表達式中的斷言知識:

(?=X )

零寬度正先行斷言。僅當(dāng)子表達式 X 在 此位置的右側(cè)匹配時才繼續(xù)匹配。例如,/w+(?=/d) 與后跟數(shù)字的單詞匹配,而不與該數(shù)字匹配。此構(gòu)造不會回溯。

(?!X)

零寬度負先行斷言。僅當(dāng)子表達式 X 不在 此位置的右側(cè)匹配時才繼續(xù)匹配。例如,例如,/w+(?!/d) 與后不跟數(shù)字的單詞匹配,而不與該數(shù)字匹配 。

(?<=X)

零寬度正后發(fā)斷言。僅當(dāng)子表達式 X 在 此位置的左側(cè)匹配時才繼續(xù)匹配。例如,(?<=19)99 與跟在 19 后面的 99 的實例匹配。此構(gòu)造不會回溯。

(?

零寬度負后發(fā)斷言。僅當(dāng)子表達式 X 不在此位置的左側(cè)匹配時才繼續(xù)匹配。例如,(?

從斷言的表達形式可以看出,它用的就是分組符號,只不過開頭都加了一個問號,這個問號就是在說這是一個非捕獲組,這個組沒有編號,不能用來后向引用,只能當(dāng)做斷言。(對于正則表達式的斷言感興趣的同學(xué),可以再查一查資料,這里不多做贅述)

所以這里我們不想匹配abc字符串就得用這個表達式: (?!abc)

測試代碼:

import re

p = re.compile(r'error(?!abc)'

print p.search("errorabc")

print p.search("errorab")

結(jié)果:

None

<_sre.SRE_Match object at 0x7f129ce34b90>

那么我想不匹配"error123bsc"這個字符串呢?你是不是以為 error.*(?!abc) 這么寫這個正則就可以了,我們來試試

import re

p = re.compile(r'error.*(?!abc)'

print p.search("error123abc")

結(jié)果:

<_sre.SRE_Match object at 0x7f129ce34bf8>

看,失敗了吧!那怎么寫呢?這么寫:error((?!abc).)*$

知道了(?!abc),那么可以理解((?!abc).)* 的意思就是匹配 不含abc的字符(?!abc) 跟 任意字符. 的組合,出現(xiàn)任何次*

很多人會問,"$"不是匹配行末尾么,確實是這個意思,不明白請精度上面一句話再來看正則,然后我們來測一下:

import re無錫人流醫(yī)院 http://www.0510bhyy.com/

p = re.compile(r'error((?!abc).)*$')

print p.search("error123abc")

print p.search("error123abc123")

print p.search("error123ab123")

結(jié)果:

None

None

<_sre.SRE_Match object at 0x7f129ce81a08>

明白了吧!

以此類推,你要是想匹配包含error不包含error前后的abc,那么應(yīng)該是這么寫這個正則:

測一下:

import re

p = re.compile(r'^((?!abc).)*error((?!abc).)*$')

print p.search("123abc123error123")

print p.search("123ab123error123")

結(jié)果:

None

<_sre.SRE_Match object at 0x7f129ce81a08>

我們要是想匹配包含error不包含多個字符串,比如abc和def,這么寫正則: error((?!(abc|def)).)*$

測試:

import re

p = re.compile(r'error((?!(abc|def)).)*$')

print p.search("error123abc234")

print p.search("error123ab234")

print p.search("error123def234")

結(jié)果:

None

<_sre.SRE_Match object at 0x7f87973eccf0>

None

測試完成!

到此,相信大家對“怎么用python正則表達式解決包含且不包含某字符串的問題”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


分享標(biāo)題:怎么用python正則表達式解決包含且不包含某字符串的問題-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://weahome.cn/article/dscchh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部