Python - ^在正則表達(dá)式中的作用

^在正則表達(dá)式中有兩個(gè)作用,一是表達(dá)以什么開(kāi)頭,二是表達(dá)對(duì)什么取反。有時(shí)候經(jīng)常傻傻的分不清楚,接下來(lái)給大家詳細(xì)介紹該怎么用這個(gè)^

準(zhǔn)備一個(gè)python文件test.py,借用re.search函數(shù)舉例說(shuō)明

# coding=utf-8import re

s = ['abc-123-cba',? ? ?#'abc'在最前面

????????'123-abc-aabbcc-123',? ? ?#'abc'在中間

????????'a-2-3-b-1',? ? #最前面是'a'

????????'b-x-c-a-1',? ? #最前面是'b'

????????'z-a-1',? ? #'a'在中間

????????'x-y-z',? ? #字符串沒(méi)有任何'a','b','c'

????????'cbaabc'? ?#字符串全是'a','b','c'組成

????????]

st = r'abc'foriin s:

? ? m = re.search(st, i)

? ? if m:

? ? ? ? print(i)

1.當(dāng)st = r'abc'時(shí),執(zhí)行python文件得到的結(jié)果如下

abc-123-cba

123-abc-aabbcc-123

cbaabc

字符串中有'abc'就匹配成功

2.當(dāng)st = r'[abc]'時(shí),執(zhí)行python文件得到的結(jié)果如下

abc-123-cba

123-abc-aabbcc-123

a-2-3-b-1

b-x-c-a-1

z-a-1

cbaabc

字符串中只要有'a'或'b'或'c',就匹配出來(lái)

3.當(dāng)st = r'^abc'時(shí),執(zhí)行python文件得到的結(jié)果如下

abc-123-cba

字符串中只有'abc'開(kāi)頭的才匹配出來(lái)

4.當(dāng)st = '^[abc]'時(shí),執(zhí)行python文件得到的結(jié)果如下

abc-123-cba

a-2-3-b-1

b-x-c-a-1

cbaabc

字符串由'a'或'b'或'c'開(kāi)頭的都匹配出來(lái)了

5.當(dāng)st = '[^abc]'時(shí),執(zhí)行python文件得到的結(jié)果如下

abc-123-cba

123-abc-aabbcc-123

a-2-3-b-1

b-x-c-a-1

z-a-1

x-y-z

字符串只要有除'a'和'b'和'c'的字符就都匹配出來(lái)了,這跟第三種情況是相反的

總結(jié):

'abc'表示字符串中有'abc'就匹配成功

'[abc]'表示字符串中有'a'或'b'或'c'就匹配成功

'^abc'表示字符串由'abc'開(kāi)頭就匹配成功

'^[abc]'表示字符串由'a'或'b'或'c'開(kāi)頭的,

'[^abc]'表示匹配'a','b','c'之外的字符。如果一個(gè)字符串是由'a','b','c'組合起來(lái)的,那就是假

當(dāng)^表示取反的時(shí)候,只有一種情況,就是在中括號(hào)里面,而且是每一個(gè)字符之外的。所以千萬(wàn)不要把'[^abc]'看成是對(duì)'abc'字符串的取反。

如果想使用對(duì)'abc'字符串取反,則只能更改代碼

st = r'abc'

for i in s:

m = re.search(st, i)

if not m

列舉常用的取反:

'[^a-z]' 所有小寫(xiě)字母之外的字符

'[^a-zA-Z]' 所有大寫(xiě)和小寫(xiě)字母之外的字符

'[^0-9]' 所有數(shù)字之外的字符

如果文章有錯(cuò)誤,還望您指正。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容