国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python正則表達(dá)式經(jīng)典入門教程

2020-02-16 01:34:05
字體:
供稿:網(wǎng)友

本文實(shí)例總結(jié)了Python正則表達(dá)式基本用法。分享給大家供大家參考,具體如下:

正則表達(dá)式在平時(shí)做文本處理(爬蟲程序去解析html中的字段,在分析log文件的時(shí)候需要抓取一些關(guān)鍵數(shù)據(jù))的時(shí)候經(jīng)常會(huì)用到。一般我們會(huì)使用到Python的re庫。如果正則表達(dá)式自己代碼中反復(fù)被用到的時(shí)候,我們可以將這個(gè)正則表達(dá)式使用re.compile函數(shù)轉(zhuǎn)換成一個(gè)object方便調(diào)用。

match

將輸入的字符串從第一個(gè)字符開始匹配,如果不匹配將會(huì)直接返回空。

search

和match不同,search能自由的在字符串中任一開始位置開始匹配,直到匹配上了。

re中的選項(xiàng)

通常在flag里面可以設(shè)置.

re.I 忽略掉大小寫
re.L 讓/w,/W,/b,/B,/s和/S做本地化識(shí)別
re.M 當(dāng)匹配的時(shí)候支持多行匹配.
re.DEBUG 顯示正則表達(dá)式的調(diào)試信息
re.S 讓.號(hào)匹配本行的全部字符。

sub 替換

import rephone='188-88-88 # this is my phone number'num = re.sub(r'#.*$','',phone)# num ==188-88-88num = re.sub(r'/D','',phone)# num = 1888888

還能使用這個(gè)來做代碼的轉(zhuǎn)義,有點(diǎn)像在 sublime text里面使用的查找替換。比如說我需要將C語言里面的宏定義轉(zhuǎn)換成lua里面的變量定義

import reprint( re.sub( r'#define/s+([a-zA-Z_]+)/s+([a-zA-Z_0-9]+)', r'_G./1 = /2', '#define MAX_RECV_SIZE 100' ) )#_G.MAX_RECV_SIZE = 100

subn函數(shù)類似,只是能定制替換的次數(shù)。

findall

將匹配到的內(nèi)容返回成一個(gè)數(shù)組,這個(gè)應(yīng)該是比較常用的方法。

print( re.findall( '/d+', '66,88,88,777' ) )# ['66', '88', '88', '777']

finditer

匹配的內(nèi)容以迭代器的方式返回,我們可以對(duì)這個(gè)做循環(huán),返回的時(shí)候MatchObject

for num in re.finditer( '/d+', '66,88,88,777' ): print num.group()'''668888777'''

split

re.split(pattern, string, maxsplit=0, flags=0) >>> re.split(',', 'Words, words, words.')['Words', ' words', ' words.']>>> re.split('/W+', 'Words, words, words.')['Words', 'words', 'words', '']>>> re.split('(/W+)', 'Words, words, words.')['Words', ', ', 'words', ', ', 'words', '.', '']

大寫的/W表示了非字串,這個(gè)在語法里面可以查到。如果加了括號(hào),將不會(huì)省略掉匹配到的split的字串。最后這個(gè)在數(shù)組中作為字串分隔符的,.都被保留在數(shù)組中了。

escape

這個(gè)函數(shù)是一個(gè)輔助函數(shù),當(dāng)大量編寫正則表達(dá)式的時(shí)候,可能我們固定的一些字串中包含了正則的保留字串,但是我們不需要讓程序當(dāng)它是re表達(dá)式的時(shí)候,可以使用這個(gè)函數(shù)將字串做轉(zhuǎn)換。

re.escape('1234@gmail.com')# result1234//@gmai//.com            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 抚顺县| 夹江县| 湛江市| 高陵县| 通州市| 永善县| 开封市| 永丰县| 双城市| 永年县| 广南县| 黄石市| 原平市| 确山县| 曲麻莱县| 温州市| 盐津县| 广南县| 忻城县| 汶川县| 渝北区| 高密市| 松江区| 大方县| 枝江市| 临沭县| 定日县| 图们市| 洪洞县| 潼南县| 武安市| 海晏县| 商都县| 闸北区| 全南县| 阳高县| 德令哈市| 哈尔滨市| 化州市| 舞钢市| 乌鲁木齐县|