字元功能
|匹配左右任意乙個表示式
(ab)
將括號中字元作為乙個分組
\num
引用分組num匹配到的字串
(?p)分組起別名
(?p=name)
引用別名為name分組匹配到的字串
示例1:|
需求:匹配出0
-100之間的數字
#coding=utf-8
import re
ret = re.match(
"[1-9]?\d"
,"8"
)print
(ret.group())
# 8ret = re.match(
"[1-9]?\d"
,"78"
)print
(ret.group())
# 78
# 不正確的情況
ret = re.match(
"[1-9]?\d"
,"08"
)print
(ret.group())
# 0# 修正之後的
ret = re.match(
"[1-9]?\d$"
,"08"
)if ret:
print
(ret.group())
else
:print
("不在0-100之間"
)# 新增|
ret = re.match(
"[1-9]?\d$|100"
,"8"
)print
(ret.group())
# 8ret = re.match(
"[1-9]?\d$|100"
,"78"
)print
(ret.group())
# 78
ret = re.match(
"[1-9]?\d$|100"
,"08"
)# print(ret.group()) # 不是0-100之間
ret = re.match(
"[1-9]?\d$|100"
,"100"
)print
(ret.group())
# 100
示例2:(
)需求:匹配出163、126、qq郵箱
#coding=utf-8
import re
ret = re.match(
"\w@163\.com"
)print
(ret.group())
ret = re.match(
"\w@(163|126|qq)\.com"
)print
(ret.group())
ret = re.match(
"\w@(163|126|qq)\.com"
)print
(ret.group())
ret = re.match(
"\w@(163|126|qq)\.com"
)if ret:
print
(ret.group())
else
:print
("不是163、126、qq郵箱"
)# 不是163、126、qq郵箱
不是以4、7結尾的手機號碼(
11位)
import re
tels =
["13100001234"
,"18912344321"
,"10086"
,"18800007777"
]for tel in tels:
ret = re.match(
"1\d[0-35-68-9]"
, tel)
if ret:
print
(ret.group())
else
:print
("%s 不是想要的手機號"
% tel)
提取區號和**號碼
>>
> ret = re.match(
"([^-]*)-(\d+)"
,"010-12345678"
)>>
> ret.group(
)'010-12345678'
>>
> ret.group(1)
'010'
>>
> ret.group(2)
'12345678'
示例3:\
需求:匹配出hh<
/html>
#coding=utf-8
import re
# 能夠完成對正確的字串的匹配
ret = re.match(
"<[a-za-z]*>\w*"
,"hh"
)print
(ret.group())
# 如果遇到非正常的html格式字串,匹配出錯
ret = re.match(
"<[a-za-z]*>\w*"
,"hh"
)print
(ret.group())
# 正確的理解思路:如果在第一對<>中是什麼,按理說在後面的那對<>中就應該是什麼
# 通過引用分組中匹配到的資料即可,但是要注意是元字串,即類似 r""這種格式
ret = re.match(r"<([a-za-z]*)>\w*"
,"hh"
)print
(ret.group())
# 因為2對<>中的資料不一致,所以沒有匹配出來
test_label =
"hh"
ret = re.match(r"<([a-za-z]*)>\w*"
, test_label)
if ret:
print
(ret.group())
else
:print
("%s 這是一對不正確的標籤"
% test_label)
執行結果:
hh<
/html>
hh<
/htmlbalabala>
hh<
/html>
hh<
/htmlbalabala> 這是一對不正確的標籤
示例4:\number
需求:匹配出
www.itcast.cn<
/h1>
<
/html>
#coding=utf-8
import re
labels =["
",""
)ret.group(
)ret = re.match(r"<(?p\w*)><(?p\w*)>.*"
,"www.itcast.cn")
ret.group(
)
PHP preg match 進行正規表示式匹配
preg match 函式用於進行正規表示式匹配,成功返回 1 否則返回 0 preg match 匹配成功一次後就會停止匹配,如果要實現全部結果的匹配,則需使用preg match all 函式。preg match pattern subject matches 引數 描述pattern 正規表...
Python 正規表示式(基礎)
正規表示式 regular expression 是乙個特殊的字串行,描述了一種字串匹配的模式可以用來檢查乙個串是否含有某種子串 將匹配的子串替換或者從某個串中取出符合某個條件的子串,或者是在指定的文章中,抓取特定的字串等。python處理正規表示式的模組是re模組,它是python語言擁有全部的正...
Python正規表示式基礎
直接給出字元就是精確匹配。特殊字元首先需要轉義如 d 匹配乙個數字,w 匹配乙個字母或者數字。123 d 可以匹配 1231 但是無法匹配 123a d d d 可以匹配到 123 w w w 可以匹配到 py3 表示任意乙個字元,py.可以表示py3 py 等 表示任意長個字元,表示至少乙個字元,...