正規表示式是乙個特殊的字串行,它能幫助你方便的檢查乙個字串是否與某種模式匹配。
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...