re 正規表示式

2022-08-15 03:45:19 字數 1718 閱讀 1696

import re

# . 匹配任意字元(不包括 換行符) 匹配換行符

p3 = '123\n456'

print(re.match('.*',p3,re.s).group()) #匹配換行符

# match 和 search

"match_p1 = '$'

# print(re.match(match_p1,p1).group(1))   #取第乙個括號內的內容

# print(re.match(match_p1,p1).group(2))    #取第二個括號內的內容

# print(re.match(match_p,p1))    # match 只能從頭開始匹配,匹配不到返回none 沒型別不能用group看值

# print(re.search(match_p,p1).group(1))   # search 可以從任意位置開始,只要匹配到即可

# print(re.search(match_p2,p2))    #以^開頭以$結尾匹配就必須是 否則報錯

# 貪婪模式 與 ? 非貪婪限定符

str1 = 'h123h456h789'

print(re.search('h(.*)h',str1).group(1))   #盡量多的匹配叫 貪婪模式             >>>123h456

print(re.search('h(.*?)h',str1).group(1))   #貪婪模式 限定符       >>>123

# * 代表0-無窮

# ? 的用法: ?前面是個數的限定符(例如 */.等) 代表的是非貪婪限定符, ?前面是字元 代表字元數為0-1個

#大括號 {}

print(re.search('h.?h',str1))

print(re.search('h.+?h',str1))

print(re.search('h.',str1))

# | 或

email = '[email protected]'

print(re.match('[a-za-z0-9_]+@(qq|163|126).com',email))

#中括號 中括號內的字元可以被匹配

str2 = 'abcd12312'

# 匹配的所有字元 都包含在中括號裡,否則不能被匹配到

print(re.search('[0-2]+',str2)) #\d=[0123456789]=[0-9]

# ^ 以什麼開頭、不以什麼開頭

str3 = '123456'

print(re.search('^1',str3))

print(re.search('^1*',str3)) # 以1開頭 已經匹配到1 所以*/+不進行匹配

print(re.search('[^12]+',str3)) # 不以12開頭

print(re.match('[^12]',str3)) # match必須從頭匹配 不以12開頭 所以匹配不到

#\ 轉義字元

print(re.search('a+','aaaabc'))

print(re.search('a+','a+aaabc'))

print(re.search('a\+','a+aaabc'))

for list_ in lists:

res_match = pat.search(list_)

print(res_match)

正規表示式 RE

最近一段時間在研究nginx的rewirte重寫機制,因此對re需要有一定的了解,看了想關的文章,因此自己來寫一篇類似總結性的的文章。基本來說,正規表示式是一種用來描述一定數量文字的模式。regex regular express。本文用 regex 來表示一段具體的正規表示式。一段文字就是最基本的...

re正規表示式

1.數字 0 9 2.n位的數字 d 3.至少n位的數字 d 4.m n位的數字 d 5.零和非零開頭的數字 0 1 9 0 9 6.非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 7.帶1 2位小數的正數或負數 d d 8.正數 負數 和小數 d d 9.有兩位小數的正實數 0 9 0 9...

Re正規表示式

import re 匯入re模組 重複出現的字串 對於重複出現的字串可以用大括號內部加上重複次數的方式表達 r d 分組 使用小括號分組 r d d 重複出現的字串 對於重複出現的字串可以用大括號內部加上重複次數的方式表達 r d 重複出現的字串 對於重複出現的字串可以用大括號內部加上重複次數的方式...