正規表示式 基礎 python 5匹配分組

2021-10-25 05:29:30 字數 3594 閱讀 2664

字元功能

|匹配左右任意乙個表示式

(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"

,"[email protected]"

)print

(ret.group())

# [email protected]

ret = re.match(

"\w@(163|126|qq)\.com"

,"[email protected]"

)print

(ret.group())

# [email protected]

ret = re.match(

"\w@(163|126|qq)\.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、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 等 表示任意長個字元,表示至少乙個字元,...