python 正規表示式 匹配規則

2021-08-25 14:37:40 字數 4046 閱讀 7166

正規表示式是乙個特殊的字串行,它能幫助你方便的檢查乙個字串是否與某種模式匹配。

python 自1.5版本起增加了re 模組,它提供 perl 風格的正規表示式模式。

re 模組使 python 語言擁有全部的正規表示式功能。

compile 函式根據乙個模式字串和可選的標誌引數生成乙個正規表示式物件。該物件擁有一系列方法用於正規表示式匹配和替換。

re 模組也提供了與這些方法功能完全一致的函式,這些函式使用乙個模式字串做為它們的第乙個引數。

re.match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match()就返回none。

re.search 掃瞄整個字串並返回第乙個成功的匹配

正規表示式模式:

模式字串使用特殊的語法來表示乙個正規表示式:

字母和數字表示他們自身。乙個正規表示式模式中的字母和數字匹配同樣的字串。

多數字母和數字前加乙個反斜槓時會擁有不同的含義。

標點符號只有被轉義時才匹配自身,否則它們表示特殊的含義。

反斜槓本身需要使用反斜槓轉義。

由於正規表示式通常都包含反斜槓,所以你最好使用原始字串來表示它們。模式元素(如 r』\t』,等價於 『\t』)匹配相應的特殊字元。

下表列出了正規表示式模式語法中的特殊元素。如果你使用模式的同時提供了可選的標誌引數,某些模式元素的含義會改變。

import re

result=re.search(r'wuyanzu','cn.wuyanzu') # search 會在裡面尋找,並返回

a=result.group()

print(a)

result=re.match(r'wuyanzu','wuyanzu.cn') # match 如果開始沒有則沒有

b=result.group()

print(b)

result=re.match(r'.','m') # match '.'匹配任意字元

c=result.group()

print(c)

result=re.match(r't.o','too') # match '.'匹配任意字元

d=result.group()

print(d)

result=re.match(r'[x]','xs') # match ''匹配中列舉的字元

e=result.group()

print(e)

result=re.match(r'\d','92bkbijk') # match '\d'匹配數字 即0-9

f=result.group()

print(f)

result=re.match(r'\d','m6151nmbhj') # match '\d'匹配非數字

g=result.group()

print(g)

result=re.match(r'\s',' m') # match '\s'匹配空白,即空格,tab鍵

h=result.group()

print(h)

result=re.match(r'\s','11 m') # match '\s'匹配非空白

i=result.group()

print(i)

result=re.match(r'\w','xm') # match '\w'匹配單詞字元,即a-z,a-z,0-9,_

j=result.group()

print(j)

result=re.match(r'\w',' m') # match '\w'匹配非單詞字元

k=result.group()

print(k)

result=re.match(r'[a-z][a-z]*','m') # match '*'匹配前乙個字元出現0次或者無限次,即可有可無\d*等價於\d

l=result.group()

print(l)

result=re.match(r'[a-z][a-z]*','mnnm') # match '*'匹配前乙個字元出現0次或者無限次,即可有可無\d*等價於\d

m=result.group()

print(m)

result=re.match(r'[a-z]+[a-z]','mnnm') # match '+'匹配前乙個字元出現1次或者無限次,即至少有1次\d+等價於\d

m1=result.group()

print(m1)

result=re.match(r'[0-9]?[1-9]','33') # match '?'匹配前乙個字元出現1次或者0次,即要麼有1次,要麼沒有\d?等價於\d

n=result.group()

print(n)

result=re.match(r'[0-9]?[^1-9]','00') # match '^'匹配[^]外的任何符號

o=result.group()

print(o)

result=re.match(r'[1-9]?[0-9]','09') # match '?'匹配前乙個字元出現1次或者0次,即要麼有1次,要麼沒有\d?等價於\d

p=result.group()

print(p)

result=re.match(r'[a-za-z0-9_]','12345sdwdfac') # match ''匹配前乙個字元出現m到n次

q=result.group()

print(q)

result=re.match(r'[a-za-z0-9_]','12345sdwdfac') # match ''匹配前乙個字元出現m次

r=result.group()

print(r)

result=re.match(r'[\w]@163.com','[email protected]') # match ''匹配前乙個字元出現m到n次

s=result.group()

print(s)

result=re.findall(r'\d+','python=9999,c=8888,c++=12345') # findall 匹配數字

t=result

print(t)

result=re.sub(r'\d+','998','c=8888') # sub 替換數字

u=result

print(u)

result=re.split(r'\:','info:xiaoming') # split 分割 linux上是':|'作為分割符

v=result

print(v)

***=re.match('^4.*[369]$','46516516')

sss=***.group()

print(sss)

www=re.match('\.\*','.*').group()

print(www)

for i in mylist:

if match_obj:

print(match_obj.group())

else:

print('沒有')

mail=['[email protected]','[email protected]','[email protected]']

for i in mail:

match_obj=re.match('\w@(163|126)\.com$',i)

if match_obj:

print(match_obj.group())

print(match_obj.group(1))

else:

print('沒有')

Python 正規表示式匹配規則

正規表示式 匹配規則 基本模式匹配 一切從最基本的開始。模式,是正規表示式最基本的元素,它們是一組描述字串特徵的字元。模式可以很簡單,由普通的字串組成,也可以非常複雜,往往用特殊的字元表示乙個範圍內的字元 重複出現,或表示上下文。例如 once 這個模式包含乙個特殊的字元 表示該模式只匹配那些以on...

正規表示式 匹配規則

一切從最基本的開始。模式,是正規表示式最基本的元素,它們是一組描述字串特徵的字元。模式可以很簡單,由普通的字串組成,也可以非常複雜,往往用特殊的字元表示乙個範圍內的字元 重複出現,或表示上下文。例如 once這個模式包含乙個特殊的字元 表示該模式只匹配那些以once開頭的字串。例如該模式與字串 on...

正規表示式 匹配規則

一切從最基本的開始。模式,是正規表示式最基本的元素,它們是一組描述字串特徵的字元。模式可以很簡單,由普通的字串組成,也可以非常複雜,往往用特殊的字元表示乙個範圍內的字元 重複出現,或表示上下文。例如 once這個模式包含乙個特殊的字元 表示該模式只匹配那些以once開頭的字串。例如該模式與字串 on...