python模組 re模組

2021-09-04 02:41:48 字數 3047 閱讀 4756

.       匹配任意字元

匹配指定字元類別

^       字元開頭

$       字元結尾

[^]     取非字元

*       重複多次字元(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 電腦科學的乙個概念。正規表示式通常被用來檢索 替換那些符合某個模式 規...