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 重複出現的字串 對於重複出現的字串可以用大括號內部加上重複次數的方式...