re模組:匹配開頭/結尾(^/$)
re模組的基礎用法
email_list = ["[email protected]", "[email protected]", "[email protected]"]
for email in email_list:
ret = re.match("[\w]@163\.com$", email) \.代表只是乙個點 $代表以***結尾的字串
if ret:
print("%s ---是符合規定的郵件位址」 % email)
else:
print("%s ---不符合要求" % email)
結果
[email protected] # ---是符合規定的郵件位址
[email protected] # ---不符合要求 # 如果沒有$,這個字串會匹配出來
[email protected] # ---不符合要求
字元功能
^匹配字串開頭
$匹配字串結尾
|匹配左右任意乙個表示式
(ab)
將括號中字元作為乙個分組
\num
引用分組num匹配到的字串
(?p)
分組起別名
(?p=name)
引用別名為name分組匹配到的字串
[\u4e00-\u9fa5] //匹配中文字元
^[1-9]\d*$ //匹配正整數
^[a-za-z]+$ //匹配由26個英文本母組成的字串
^[a-z]+$ //匹配由26個英文本母的大寫組成的字串
^[a-z]+$ //匹配由26個英文本母的小寫組成的字串
^[a-za-z0-9]+$ //匹配由數字和26個英文本母組成的字串
2、需求:不是以4、7結尾的手機號碼(11位)
import re
tels = ["13100001234", "18912344321", "10086", "18800007777"]
for tel in tels:
ret = re.match("1\d[0-3,5-6,8-9]", tel)
if ret:
print(ret.group())
else:
print("%s 不是想要的手機號" % tel)
結果
13100001234 不是想要的手機號
18912344321
10086 不是想要的手機號
18800007777 不是想要的手機號
3、需求:匹配出163、126、qq郵箱
#coding=utf-8
import re
ret = re.match("\w@163\.com", "[email protected]」)
print(ret.group())
# 結果: [email protected]
ret = re.match("\w@(163|126|qq)\.com", "[email protected]")
if ret:
print(ret.group())
else:
print("不是163、126、qq郵箱")
# 結果: 不是163、126、qq郵箱
4、需求:提取區號和**號碼
import re
ret = re.match("([^-]*)-(\d+)", "010-12345678")
print(ret.group())
print(ret.group(1))
print(ret.group(2))
結果如下:
010-12345678
01012345678
^在[ ]裡面代表非的含義:
例如:[^-]* *代表前所有字元0個或者多個,非-的字串
[^abc] 代表非a、且非b 、且非c的字元
1、正規表示式中,\d 匹配乙個數字字元。等價於 [0-9]。
2、相反地,正規表示式中,\d 匹配乙個非數字字元。等價於 [^0-9]。
5、需求:匹配出0-100之間的數字
import re
ret = re.match("[1-9]?\d","8」) # ?匹配前面的字元出現1次或者0次 類似78也可以匹配
print(ret.group())
# 結果:8
ret = re.match("[1-9]?\d$|100","78")
print(ret.group())
# 結果: 78
ret = re.match("[1-9]?\d$|100","100")
print(ret.group())
# 結果: 100
\w 匹配字母或數字或下劃線或漢字(具體與字符集有關),^\w 表示相反匹配。
import re
s = "string. with. punctuation?"
# 如果空白符也需要過濾,使用 r'[^\w]'
s = re.sub(r'[^\w\s]','',s)
re.split
s = "標準黑 標準白 油黃色,珍珠白油黃色,標準黑-1;等,紅芽粉-7,深鳶尾藍,如圖"
color_list = re.split("[,, ]", s)
color_list
['標準黑', '標準白', '油黃色', '珍珠白油黃色', '標準黑-1;等', '紅芽粉-7', '深鳶尾藍', '如圖']
python 正規表示式 re
match 和 search 的區別 match是從字串開頭匹配,而search是在整個字串中匹配。如 p re.compile a z p.match message none 因為開頭是 因此無法匹配 而 m p.search message print m re.matchobject ins...
python正規表示式 re
re.match 嘗試從字串的開始匹配乙個模式,如 下面的例子匹配第乙個單詞。import retext jgood is a handsome boy,he is cool,clever,and so on.m re.match r w s text ifm print m.group 0 n m...
python正規表示式(re)
在python中re模組用於對正規表示式 regular expression 的支援。正規表示式是可以匹配文字片段的模式。一 正規表示式的書寫 1 萬用字元 點 可以匹配任何字元 除了換行符 如 ike 可以匹配 bike like 等 2 對特殊字元進行轉義 在正規表示式中如果是引用特殊字元作為...