真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python正則表達(dá)式

Python 正則表達(dá)式
正則表達(dá)式是一個(gè)特殊的字符序列,它能幫助你方便的檢查一個(gè)字符串是否與某種模式匹配。
Python 自1.5版本起增加了re 模塊,它提供 Perl 風(fēng)格的正則表達(dá)式模式。
re 模塊使 Python 語言擁有全部的正則表達(dá)式功能。
compile 函數(shù)根據(jù)一個(gè)模式字符串和可選的標(biāo)志參數(shù)生成一個(gè)正則表達(dá)式對(duì)象。該對(duì)象擁有一系列方法用于正則表達(dá)式匹配和替換。
re 模塊也提供了與這些方法功能完全一致的函數(shù),這些函數(shù)使用一個(gè)模式字符串做為它們的第一個(gè)參數(shù)。
本章節(jié)主要介紹Python中常用的正則表達(dá)式處理函數(shù)。

公司主營業(yè)務(wù):網(wǎng)站制作、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出吳江免費(fèi)做網(wǎng)站回饋大家。

re.match函數(shù)
re.match 嘗試從字符串的起始位置匹配一個(gè)模式,如果不是起始位置匹配成功的話,match()就返回none。
函數(shù)語法:
re.match(pattern, string, flags=0)
函數(shù)參數(shù)說明:
參數(shù)
描述
pattern
匹配的正則表達(dá)式
string
要匹配的字符串。
flags
標(biāo)志位,用于控制正則表達(dá)式的匹配方式,如:是否區(qū)分大小寫,多行匹配等等。參見:正則表達(dá)式修飾符 - 可選標(biāo)志
匹配成功re.match方法返回一個(gè)匹配的對(duì)象,否則返回None。
我們可以使用group(num) 或 groups() 匹配對(duì)象函數(shù)來獲取匹配表達(dá)式。
匹配對(duì)象方法
描述
group(num=0)
匹配的整個(gè)表達(dá)式的字符串,group() 可以一次輸入多個(gè)組號(hào),在這種情況下它將返回一個(gè)包含那些組所對(duì)應(yīng)值的元組。
groups()
返回一個(gè)包含所有小組字符串的元組,從 1 到 所含的小組號(hào)。
實(shí)例
#!/usr/bin/python
-- coding: UTF-8 --

import re
print(re.match('www', 'www.runoob.com').span()) # 在起始位置匹配
print(re.match('com', 'www.runoob.com')) # 不在起始位置匹配
以上實(shí)例運(yùn)行輸出結(jié)果為:
(0, 3)
None
實(shí)例
#!/usr/bin/python
import re

line = "Cats are smarter than dogs"

matchObj = re.match( r'(.) are (.?) .*', line, re.M|re.I)

if matchObj:
print "matchObj.group() : ", matchObj.group()
print "matchObj.group(1) : ", matchObj.group(1)
print "matchObj.group(2) : ", matchObj.group(2)
else:
print "No match!!"
以上實(shí)例執(zhí)行結(jié)果如下:
matchObj.group() : Cats are smarter than dogs
matchObj.group(1) : Cats
matchObj.group(2) : smarter

re.search方法
re.search 掃描整個(gè)字符串并返回第一個(gè)成功的匹配。
函數(shù)語法:
re.search(pattern, string, flags=0)
函數(shù)參數(shù)說明:
參數(shù)
描述
pattern
匹配的正則表達(dá)式
string
要匹配的字符串。
flags
標(biāo)志位,用于控制正則表達(dá)式的匹配方式,如:是否區(qū)分大小寫,多行匹配等等。
匹配成功re.search方法返回一個(gè)匹配的對(duì)象,否則返回None。
我們可以使用group(num) 或 groups() 匹配對(duì)象函數(shù)來獲取匹配表達(dá)式。
匹配對(duì)象方法
描述
group(num=0)
匹配的整個(gè)表達(dá)式的字符串,group() 可以一次輸入多個(gè)組號(hào),在這種情況下它將返回一個(gè)包含那些組所對(duì)應(yīng)值的元組。
groups()
返回一個(gè)包含所有小組字符串的元組,從 1 到 所含的小組號(hào)。
實(shí)例
#!/usr/bin/python
-- coding: UTF-8 --

import re
print(re.search('www', 'www.runoob.com').span()) # 在起始位置匹配
print(re.search('com', 'www.runoob.com').span()) # 不在起始位置匹配
以上實(shí)例運(yùn)行輸出結(jié)果為:
(0, 3)
(11, 14)
實(shí)例
#!/usr/bin/python
import re

line = "Cats are smarter than dogs";

searchObj = re.search( r'(.) are (.?) .*', line, re.M|re.I)

if searchObj:
print "searchObj.group() : ", searchObj.group()
print "searchObj.group(1) : ", searchObj.group(1)
print "searchObj.group(2) : ", searchObj.group(2)
else:
print "Nothing found!!"
以上實(shí)例執(zhí)行結(jié)果如下:
searchObj.group() : Cats are smarter than dogs
searchObj.group(1) : Cats
searchObj.group(2) : smarter

re.match與re.search的區(qū)別
re.match只匹配字符串的開始,如果字符串開始不符合正則表達(dá)式,則匹配失敗,函數(shù)返回None;而re.search匹配整個(gè)字符串,直到找到一個(gè)匹配。
實(shí)例
#!/usr/bin/python
import re

line = "Cats are smarter than dogs";

matchObj = re.match( r'dogs', line, re.M|re.I)
if matchObj:
print "match --> matchObj.group() : ", matchObj.group()
else:
print "No match!!"

matchObj = re.search( r'dogs', line, re.M|re.I)
if matchObj:
print "search --> matchObj.group() : ", matchObj.group()
else:
print "No match!!"
以上實(shí)例運(yùn)行結(jié)果如下:
No match!!
search --> matchObj.group() : dogs

檢索和替換
Python 的 re 模塊提供了re.sub用于替換字符串中的匹配項(xiàng)。
語法:
re.sub(pattern, repl, string, count=0, flags=0)
參數(shù):
pattern : 正則中的模式字符串。
repl : 替換的字符串,也可為一個(gè)函數(shù)。
string : 要被查找替換的原始字符串。
count : 模式匹配后替換的最大次數(shù),默認(rèn) 0 表示替換所有的匹配。
實(shí)例
#!/usr/bin/python
-- coding: UTF-8 --

import re

phone = "2004-959-559 # 這是一個(gè)國外電話號(hào)碼"

#刪除字符串中的 Python注釋
num = re.sub(r'#.*$', "", phone)
print "電話號(hào)碼是: ", num

刪除非數(shù)字(-)的字符串
num = re.sub(r'\D', "", phone)
print "電話號(hào)碼是 : ", num
以上實(shí)例執(zhí)行結(jié)果如下:
電話號(hào)碼是: 2004-959-559
電話號(hào)碼是 : 2004959559
repl 參數(shù)是一個(gè)函數(shù)
以下實(shí)例中將字符串中的匹配的數(shù)字乘以 2:
實(shí)例
#!/usr/bin/python
-- coding: UTF-8 --

import re

#將匹配的數(shù)字乘以 2
def double(matched):
value = int(matched.group('value'))
return str(value * 2)

s = 'A23G4HFD567'
print(re.sub('(?P\d+)', double, s))
執(zhí)行輸出結(jié)果為:
A46G8HFD1134
re.compile 函數(shù)
compile 函數(shù)用于編譯正則表達(dá)式,生成一個(gè)正則表達(dá)式( Pattern )對(duì)象,供 match() 和 search() 這兩個(gè)函數(shù)使用。
語法格式為:
re.compile(pattern[, flags])
參數(shù):
pattern : 一個(gè)字符串形式的正則表達(dá)式
flags : 可選,表示匹配模式,比如忽略大小寫,多行模式等,具體參數(shù)為:
re.I 忽略大小寫
re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依賴于當(dāng)前環(huán)境
re.M 多行模式
re.S 即為 . 并且包括換行符在內(nèi)的任意字符(. 不包括換行符)
re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依賴于 Unicode 字符屬性數(shù)據(jù)庫
re.X 為了增加可讀性,忽略空格和 # 后面的注釋


分享文章:python正則表達(dá)式
網(wǎng)頁網(wǎng)址:http://weahome.cn/article/jsddcs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部