正規表示式

2021-10-22 18:41:16 字數 2919 閱讀 7690

#正規表示式,其實就是從一段字串中提取出需要的字元

import re #載入正規表示式模組

#re.findall(引數1,引數2,引數3) 引數1表示用什麼規則進行提取,引數2表示從哪個字串進行提取

#引數3一般有re.i 表示不區分大小寫,re.s 匹配多行中滿足條件的值

str1=

'abcdefg'

#. 萬用字元,匹配某個字元前面或後面的乙個字元

print

(re.findall(

'a.'

,str1)

)#提取a後面的乙個字元,返回值是列表,包括條件a也返回

print

(re.findall(

'a(.)'

,str1)

)#提取a後面的乙個字元,返回值是列表,不包括條件a

#* 萬用字元,匹配某個字元後面的若干個字元,若干也包括0個的情況

str1_1=

'abcdabbcbbbbeafg'

print

(re.findall(

'ab*'

,str1_1)

)#把所有a後面有若干個b的字元找出來,包括0個b的情況

#? 萬用字元,匹配某個字串後面有0-1個字元

str1_2=

'abacabbbbbd'

print

(re.findall(

'ab?'

,str1_2)

)#+ 萬用字元,匹配某個字串後面有乙個或多個字元,不包括0個的情況

print

(re.findall(

'ab+'

,str1_2)

)#.*? 提取字串兩端之間的內容 a(.*?)b

load1=

'一二三四五六七**'

print

(re.findall(

'三(.*?)六'

,load1)

)#如果只有一端給出了條件,值會怎麼取?

print

(re.findall(

'三(.*?)六'

,load1)

)#懶惰匹配,在符合查詢要求的情況下,盡可能少的匹配

print

(re.findall(

'(.*?)六'

,load1)

)#需要匹配的字串後面是'六',無法偷懶

#只給出一端的條件時,如果希望獲取後面全部的結果,則應當使用貪婪匹配

print

(re.findall(

'三(.*)六'

,load1)

)#貪婪匹配

#當有多個滿足條件的值時,兩者的結果並不相同

load1=

'一二六三四五六三七**六'

print

(re.findall(

'三(.*?)六'

,load1)

)#懶惰匹配

print

(re.findall(

'三(.*)六'

,load1)

)#貪婪匹配

#如果沒有滿足條件的查詢,返回空列表

print

(re.findall(

'九(.*?)一'

,load1)

)#懶惰匹配

print

(re.findall(

'九(.*)一'

,load1)

)#貪婪匹配

#\w 匹配字母,數字,下劃線,n表示連續滿足條件的位數

str3=

'nyrbt'

print

(re.findall(

'\w'

,str3)

)#\w 匹配\w的補集

str3_new=

'ny#$%rbt'

print

(re.findall(

'\w'

,str3_new)

)#\s 匹配空格,換行符\n,製表符\t

str6=

'''從前有座山,

山上有個 廟.

廟裡有倆和 尚,

老和尚講故 事

'''print

(re.findall(

'\s'

,str6)

)#\s \s的補集

print

(re.findall(

'\s'

,str6)

)#^匹配開頭,$匹配結尾

list1=

['abcde'

,'deabc'

,'fabcf'

]for one in list1:

if re.findall(

'^abc'

,one)

:#匹配以abc開頭的字串

print

(one,

'以abc開頭'

)elif re.findall(

'abc$'

,one)

:#匹配以abc結尾的字串

print

(one,

'以abc結尾'

)#re.i 不區分大小寫

req=

'abcabcabcabcabcabc'

print

(re.findall(

'abc'

,req,re.i)

)#re.s 匹配多行中符合條件的值

req2=

'''hellounyrbtyutnhbgumynhbg

,imyuntbuimyuntybr

68,imyuntybrytnuymi,oumworld'''

print

(re.findall(

'hello(.*?)world'

,req2,re.s)

)

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...