IT培訓(xùn)網(wǎng)
IT在線學(xué)習(xí)
編程語(yǔ)言中的正則表達(dá)式用于描述搜索模式的特殊文本字符串。這對(duì)于從文本(如代碼、日志、文檔、電子表格等)中提取信息非常有用。使用正則表達(dá)式時(shí),首先要認(rèn)識(shí)到的是,所有內(nèi)容本質(zhì)上都是一個(gè)字符。ASCII或拉丁字母是鍵盤上的字母,Unicode用于匹配外來(lái)文本,它包括數(shù)字和標(biāo)點(diǎn)符號(hào)以及所有特殊字符,如$、#、@、!、%等。
例如,正則表達(dá)式可以告訴程序從字符串中搜索特定文本,然后相應(yīng)地打印出結(jié)果。正則表達(dá)式可以包括文字匹配、重復(fù)、分支、模式組成等。
在Python中,正則表達(dá)式通過(guò)re模塊導(dǎo)入。元字符是具有特殊含義的字符,用來(lái)匹配特定文本。常用的元字符如表所示。
re模塊中定義了一些函數(shù),分別對(duì)應(yīng)不同的匹配模式。
findall()函數(shù)用于返回包含所有匹配項(xiàng)的字符串列表:
- >>> import re # 導(dǎo)入re模塊,以下示例都將省略這行代碼
- >>> s = 'hello 12 hi 89. How 34'
- >>> pattern = '\d+' # 匹配數(shù)字
- >>> result = re.findall(pattern, s)
- >>> print(result)
- ['12', '89', '34']
split()函數(shù)用于在存在匹配項(xiàng)的情況下拆分字符串,并返回發(fā)生拆分的字符串列表:
- >>> s = 'python:234, java 90' # 將數(shù)字作為分隔符
- >>> pattern = '\d+'
- >>> result = re.split(pattern, s)
- >>> print(result)
- ['python:', ', java ', '']
如果不存在匹配項(xiàng),那么split()函數(shù)返回一個(gè)包含空字符串的列表?梢詫axsplit參數(shù)傳遞給split()函數(shù),maxsplit代表最大拆分次數(shù):
- >>> s = 'python:234, java 90'
- >>> pattern = '\d+'
- >>> result = re.split(pattern, s, 1) # 分割最大值是1,即拆成兩份
- >>> print(result)
- ['python:', ', java 90']
sub()函數(shù)用于返回一個(gè)字符串,其中匹配到的匹配項(xiàng)被替換變量的內(nèi)容替換:
- >>> s = 'abc 12\
- ... de 23 \n f45 6'
- >>> pattern = '\s+' # 匹配空白字符
- >>> replace = '' # 用空字符串替換匹配項(xiàng)
- >>> new_string = re.sub(pattern, replace, s)
- >>> print(new_string) # 完成替換
- abc12de23f456
如果不存在匹配項(xiàng),那么sub()函數(shù)返回原始字符串。
subn()函數(shù)與sub()函數(shù)類似,只不過(guò)subn()函數(shù)返回一個(gè)包含2個(gè)項(xiàng)的元組,其中包含新字符串和進(jìn)行替換的次數(shù):
- >>> s = 'abc 12\
- ... de 23 \n f45 6'
- >>> pattern = '\s+'
- >>> replace = ''
- >>> new_string = re.subn(pattern, replace, s)
- >>> print(new_string)
- ('abc12de23f456', 4)
search()函數(shù)采用兩個(gè)參數(shù),分別是匹配模式和字符串。該函數(shù)查找正則表達(dá)式模式與字符串匹配的第一個(gè)位置。如果匹配成功,那么search()函數(shù)返回一個(gè)match對(duì)象;否則返回None:
- >>> s = 'Python is fun'
- >>> match = re.search('\APython', s) # 檢查'Python'是否在開(kāi)頭
- >>> print(match) # 返回一個(gè)對(duì)象
- <_sre.SRE_Match object; span=(0, 6), match='Python'>
上面的match變量包含著match對(duì)象,match對(duì)象的re屬性返回一個(gè)正則表達(dá)式對(duì)象,string屬性返回傳遞的字符串:
- >>> match.re
- re.compile('\\APython')
- >>> match.string
- 'Python is fun'
更多內(nèi)容
>>本文地址:http://m.yiyunku.cn/zhuanye/2021/70621.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學(xué)歷
3 您更想做哪個(gè)方向的工作?
07月15日Java
咨詢/試聽(tīng)07月15日Python+人工智能
咨詢/試聽(tīng)07月15日Web前端
咨詢/試聽(tīng)07月15日UI設(shè)計(jì)
咨詢/試聽(tīng)07月15日大數(shù)據(jù)
咨詢/試聽(tīng)07月15日Java
咨詢/試聽(tīng)07月15日Python+人工智能
咨詢/試聽(tīng)07月15日Web前端
咨詢/試聽(tīng)07月15日UI設(shè)計(jì)
咨詢/試聽(tīng)07月15日大數(shù)據(jù)
咨詢/試聽(tīng)