當前位置:首頁 » 編程語言 » python中的re模塊

python中的re模塊

發布時間: 2024-08-09 06:26:36

python 中 re.sub 和 re.compile 是啥意思呀跪求大神解釋。

在python中re是一個常用的模塊,主要是通過正則表達式進行字元串處理。它的速度相對自己用 find, replace, split來說,通常更快。當然功能更強大。


正則表達式也是一種語言,所以如果通過re.compile把它編譯成對象,會速度快很多。所以我們經常看到這樣的語句

exp=re.compile("S+")
m=exp.search(bigtext)
printm.group(0)

這段話等同於

m=re.search("S+",bigtext)
printm.group(0)

re.sub則相當於字元串操作中的replace,比如

sometext=re.sub("(?isu)
","
",sometext)

上面這句話是將回車換行,變成換行。這是為了將windows下的文本文件移到linux下,防止某些軟體不兼容所做的處理。


簡單的說re.sub是做字元串替換的, re.compile是將正則表達式編譯成一個對象,加快速度,並重復使用。

❷ 強烈推薦!Python 這個寶藏庫 re 正則匹配


Python 的 re 模塊(Regular Expression 正則表達式)提供各種正則表達式的匹配操作。

在文本解析、復雜字元串分析和信息提取時是一個非常有用的工具 ,下面總結了 re 模塊的常用方法。


d 匹配所有的十進制數字 0-9

D 匹配所有的非數字,包含下劃線

s 匹配所有空白字元(空格、TAB等)

S 匹配所有非空白字元,包含下劃線

w 匹配所有字母、漢字、數字 a-z A-Z 0-9

W 匹配所有非字母、漢字、數字,包含下劃線


備注跡凳:符號.* 貪婪,符號.*? 非貪婪

[abc]:能匹配其中的單個字元

[a-z0-9]:能匹配指定范圍的字元,可取反(在最前面加入^)

[2-9] [1-3]:能夠做組合匹配

4.{ }:用於標記前面的字元出現的頻率,有如下情況:

{n,m}:代表前面字元最少出現n次,最多出現m次

{n,}:代表前面字元最少出現n次,最多不受限制

{,m}:代表前面字元最多出現n次,最少不受限制

{n}:前面的字元必須出現n次


字元串中有反斜杠的,需要對反斜杠做轉義


():分組字元,可以為匹配到的內容分組,快速獲取到分組中的數據 在正則裡面 "()" 代表的是分組的意思,一個括弧代表一個分組,你只能匹配到 "()" 中的內容。

group:用於查看指定分組匹配到的內容

groups:返回一個元組,組內為所有匹配到的內容

groupdict:返回一個字典,包含分組的鍵值對,需要為分組命名


作用:可以將字元串匹配正則表達式的部分割開並返回一個列表


flags定義包括:

re.I:忽略大小寫

re.L:表示特殊字元集 w, W, b, B, s, S 依賴於當前環境

re.M:多行模式

re.S:』.』並且包括換行符在內的任意字元(注意:』.』不包括換行符)

re.U:表示特殊字元集 w, W, b, B, d, D, s, S 依賴於 Unicode 字元屬性資料庫

在 Python 中使用正耐孫則表達式之前,先使用以下命令導入 re 模塊


例如:

『(d)(a)1』 表示:匹配第一是數字,第二是字元a,第三 1 必須匹配第一個一樣的數字重復一次姿畝旅,也就是被引用一次。

如 「9a9」 被匹配,但 「9a8」 不會被匹配,因為第三位的 1 必須是 9 才可以。

『(d)(a)2』 表示:匹配第一個是一個數字,第二個是a,第三個 2 必須是第二組()中匹配一樣的。

如 「8aa」 被匹配,但 「8ab」,「7a7」 不會被匹配,第三位必須是第二組字元的復製版,也是就引用第二組正則的匹配內容。





❸ Python模塊的幾種類型簡介

view plain to clipboardprint?
import os
import stat
import time<DIV></DIV>

fileStats = os.stat ( 'test.txt' )
fileInfo = {
'Size' : fileStats [ stat.ST_SIZE ],
'LastModified' : time.ctime ( fileStats [ stat.ST_MTIME ] ),
'LastAccessed' : time.ctime ( fileStats [ stat.ST_ATIME ] ),
'CreationTime' : time.ctime ( fileStats [ stat.ST_CTIME ] ),
'Mode' : fileStats [ stat.ST_MODE ]
}

for infoField, infoValue in fileInfo:
print infoField, ':' + infoValue
if stat.S_ISDIR ( fileStats [ stat.ST_MODE ] ):
print 'Directory. '
else:
print 'Non-directory.'

import os
import stat
import time

fileStats = os.stat ( 'test.txt' )
fileInfo = {
'Size' : fileStats [ stat.ST_SIZE ],
'LastModified' : time.ctime ( fileStats [ stat.ST_MTIME ] ),
'LastAccessed' : time.ctime ( fileStats [ stat.ST_ATIME ] ),
'CreationTime' : time.ctime ( fileStats [ stat.ST_CTIME ] ),
'Mode' : fileStats [ stat.ST_MODE ]
}

for infoField, infoValue in fileInfo:
print infoField, ':' + infoValue
if stat.S_ISDIR ( fileStats [ stat.ST_MODE ] ):
print 'Directory. '
else:
print 'Non-directory.'

❹ Python re模塊 正則表達式之compile函數

為了重復利用同一個正則對象,需要多次使用這個正則表達式的話,使用re.compile()保存這個正則對象以便復用,可以讓程序更加高效。

1)re.compile

參數:

re.I 忽略大小寫

re.L 表示特殊字元集 w, W, b, B, s, S 依賴於當前環境

re.M 多行模式

re.S 即為' . '並且包括換行符在內的任意字元(' . '不包括換行符)

re.U 表示特殊字元集 w, W, b, B, d, D, s, S 依賴於 Unicode 字元屬性資料庫

re.X 為了增加可讀性,忽略空格和' # '後面的注釋

案例:

在上面,當匹配成功時返回一個 Match 對象,其中:

2)re.findall

在字元串中找到正則表達式所匹配的所有子串,並返回一個列表,如果有多個匹配模式,則返回元組列表,如果沒有找到匹配的,則返回空列表。

注意: match 和 search 是匹配一次 findall 匹配所有。

參數:

案例:

3)re.finditer

和 findall 類似,在字元串中找到正則表達式所匹配的所有子串,並把它們作為一個迭代器返回。

案例:

4)re.split

split 方法按照能夠匹配的子串將字元串分割後返回列表。

案例:

從上篇Python re模塊 正則表達式到這篇,我們已經把常用的正則匹配的方法學會了。

關注我,堅持每日積累一個技巧, 長期堅持 ,我們將會不斷進步。

#python# #程序員# #請回答,你的年度知識點# #教育聽我說# #計算機#

熱點內容
日常電瓶叉車配置有哪些 發布:2024-11-25 18:21:17 瀏覽:361
java的二分查找 發布:2024-11-25 18:21:11 瀏覽:23
買帕薩特選哪個配置 發布:2024-11-25 18:17:23 瀏覽:224
編程很掙錢嗎 發布:2024-11-25 18:13:43 瀏覽:935
接受btc支付的香港雲伺服器 發布:2024-11-25 18:02:09 瀏覽:909
華為手機怎麼密碼解鎖 發布:2024-11-25 17:56:34 瀏覽:938
伺服器管理員怎麼編輯別人背包 發布:2024-11-25 17:55:45 瀏覽:930
plc編程T 發布:2024-11-25 17:55:02 瀏覽:268
資料庫年薪 發布:2024-11-25 17:51:18 瀏覽:666
王者榮耀如何給賬號設置密碼 發布:2024-11-25 17:36:48 瀏覽:759