. 匹配任意字元
匹配指定字元類別
^ 字元開頭
$ 字元結尾
[^] 取非字元
* 重複多次字元(0次或多次)
+ 重複多次字元(1次或多次)
? 重複單次字元
| 左右表示式任意匹配
重複m到n次字元
重複m次字元
\d 匹配任何十進位制數,相當於[0-9]
\d 匹配任何非數字字元,相當於[^0-9]
\s 匹配任何空白字元,相當於[fdss]
\s 匹配任何非空白字元,相當於[^jdvnjsd]
\w 匹配任何數字字母,相當於[a-za-z0-9]
\w 匹配任何非數字字母,相當於[^a-za-z0-9]
例1:定義簡單的正規表示式
格式:re.compile(strpattern[, flag]):
strpattern:字串表示式
flag:
re.i(re.ignorecase): 忽略大小寫(括號內是完整寫法,下同)
m(multiline): 多行模式,改變'^'和'$'的行為
s(dotall): 點任意匹配模式,改變'.'的行為
l(locale): 使預定字元類 \w \w \b \b \s \s 取決於當前區域設定
u(unicode): 使預定字元類 \w \w \b \b \s \s \d \d 取決於unicode定義的字元屬性
x(verbose): 詳細模式。這個模式下正規表示式可以是多行,忽略空白字元,並可以加入注釋。
pattern=re.compile(r'hellow',re.i) #生成乙個pattern例項
match=pattern.match('hellow world') #使用pattern匹配文字
if match:
print match.group() #如果匹配就輸出
#例2:match屬性和方法
#!/bin/env python
#!-*- coding:utf-8 -*-
import re
match=re.match(r'(\w+)(\w+)(?p.*)','hellow world!') #使用pattern匹配文字
print "match.string:",match.string #匹配時使用的文字
print "match.re:",match.re #匹配時使用的pattern對像
print "match.pos:",match.pos #開始搜尋的索引
print "match.endpos:",match.endpos #結束搜尋的索引
print "match.lastindex:",match.lastindex #最後乙個**獲在分組在文字中的索引
print "match.lastgroup",match.lastgroup #最後乙個**獲的分組名
print "match.group(1,2):",match.group(1,2) #獲得乙個或多個分組截獲的字串
print "match.groups():",match.groups() #以元組形式返回全部分組的字串
print "match.groupdict():",match.groupdict() #返回有別名組的別名為鍵
print "match.start(2):",match.start(2) #返回指定組截獲的子串在字元中的起始索引
print "match.end(2):",match.end(2) #返回指定組截獲的子串在字元中的結束索引
print "match.span(2):",match.span(2) #返回起始組和結束組
#例3:re模組和方法
re.compile #轉換為pattern對像
re.match #匹配正零時表示式
re.search #查詢字串
re.split #分割字串
re.findall #搜尋字元中,以列表形式返回全部能匹配的子串
re.finditer #搜尋字串,返回乙個順序訪問每乙個匹配的結果
re.sub #替換字串
re.subn #替換字串,n次
#例4:查詢字串
a=re.compile(r'hello')
b=a.search('hello world') #查詢a中是否有hello字元
if b:
print b.group()
#例5:截斷字串
p=re.compile(r'\d')
print p.findall('one1two2three3four4five5')
#例6:返回每個匹配的結果
w=re.compile(r'\d')
for m in w.finditer('one1two2three3four4five5'):
print m.group()
#例7:
e=re.compile(r'(\w+)(\w+)')
s='this is, tong cheng'
print e.sub(r'\2\1',s)
def func(m):
return m.group(1).title()+ ' ' + m.group(2).title()
print e.sub(func,s)
python模組 之 re模組
功能 實現python對正規表示式對支援與應用,將想要得到對內容按照正規表示式匹配出來 應用場景 爬蟲指令碼 對使用者輸入內容進行合規檢查 如qq格式檢查 等 功能 匹配物件中所有符合正規表示式的內容,並取出來 返回值 列表,所匹配到對項都會返回到列表中 import re content 1362...
python內建模組之re模組
在python要想使用正則必須借助於模組,re就是其中之一 查詢字串中所有匹配到的字元,並返回乙個列表,沒有匹配資料則返回乙個空列表 import re re.findall 正規表示式 帶匹配的文字 根據正則匹配除所有符合條件的資料 res re.findall b eva jason jacks...
Python常用模組 re
python內部的re 傳聞中的正則模組,是無數初學者心中的噩夢,幾乎到了談正則色變的地步。1.正則是幹什麼的 正規表示式,又稱規則表示式。英語 regular expression,在 中常簡寫為regex regexp或re 電腦科學的乙個概念。正規表示式通常被用來檢索 替換那些符合某個模式 規...