import re
result1 = re.match('\d+', '1sssda22wdasfsa') # 匹配開頭
print type(result1)
print result1
if result1:
print result1.group()
else:
print 'nothing'
result2 = re.search('\d+', 'ssss333dawd44asfsa') # 找到第乙個匹配
print type(result2)
print result2
if result2:
print result2.group()
else:
print 'nothing'
result3 = re.findall('\d+', 'ssss333dawd44asfsa') # 找到所有匹配,輸出列表
print type(result3)
print result3
a = 'ssss123dawd45867asf956sa'
result4 = re.compile('\d+')
print result4.findall(a) # 相比result3少了一次編譯('\d')的過程,效率更高
result5 = re.search('(\d+)\w*(\d+)', a)
result6 = re.search('(\d+)dawd(\d+)', a)
print result5.group(), result6.group()
print result5.groups(), result6.groups()
ip = 'inet 192.168.112.130/24 brd 192.168.112.255 scope global eth0'
print re.findall('(?:\d\.)\d', ip)
print re.findall('[0-9]\.[0-9]\.[0-9]\.[0-9]', ip)
輸出:<_sre.sre_match object at 0x000000000269a718>
1<_sre.sre_match object at 0x000000000269a780>
333['333', '44']
['123', '45867', '956']
123dawd45867asf956 123dawd45867
('123', '6') ('123', '45867')
['192.168.112.130', '192.168.112.255']
['192.168.112.130', '192.168.112.255']
. 匹配任意字元,換行符\n除外
* 匹配前乙個字元0次或無限次
? 匹配前乙個字元0次或一次
.* 貪心演算法
.*? 非貪心演算法
() 括號內的資料作為結果返回,分組
匹配n次
匹配n到m次
findall 匹配所以符合規律的內容,返回包含結果的列表
search 匹配並提取第乙個符合規律的內容,返回乙個正規表示式物件(obiect)
sub 替換符合規律的內容,返回替換後的值
\d 數字
+ >=1
\w 字元
\t 製表符
Python re 正規表示式
import re 匯入re模 result re.match 正規表示式,要匹配的字串 使用match 方法進行匹配操作 result.group 使用group 方法提取資料 案例 匹配變數名是否符合識別符號命名規則 res re.match a za z w name 123 print re...
正規表示式 python re
字元功能 或 分組 num 引用分組num匹配到的字串 p 分組起別名 p name 引用別名為name分組匹配到的字串 示例import re label res re.match r w w label print res.group www.itcast.cn h1 html import r...
python re 正規表示式
1 re.match str id s paragraph.text re.match 表示從變數 paragraph.text 所代表的 字串 的開始匹配模式 str id s 模式 str id s 表示 以id 某個數字 開始,s 表示0個或者多個空白符。表示結尾。2 searchobj re...