簡單總結一下python 的re模組一些問題

2021-09-18 04:44:52 字數 1261 閱讀 6260

本文中基礎知識沒有介紹,只是將自己不懂的東西稍加記錄,以複習記憶。

match(),finditer(),search()為一組,返回的是match object物件;

其擁有group()方法:

當匹配的正規表示式沒有小括號時,group(0)=group(),代表整個正規表示式;

當有括號時:

group(0)=group(),其他括號按照從外向內組號增加:

import re

str='ssss2.168.1.11sssss'

p=re.compile(r'(\w+(\d+)\.)')

print(p.search(str).group())

#這是關鍵點:group(0)=group()=group(1):輸出ssss2. 看懂了嗎???

#group(2):輸出2

findall()返回乙個列表:

無分組就是整個匹配,這個不提;

有分組時,預設沒有整體結果而是乙個分組的結果,如果有多個小括號分組,將會把多個分組組合成元祖作為列表find的一項,類似下面:

re.findall(r"(\d+)@(\w+).com", content)

[('2345678', '163'), ('2345678', '163'), ('345678', '163')]

如果想匹配整個結果,2個方法:

1是將整個正規表示式小括號括起來;

2是用?:,具體請看收藏夾關於(?# ?:)等具體用法。

另外關於finditer(),返回的是迭代器,到底是啥呢?

import re

str='ssss2.168.1.11sssss'

p=re.compile(r'\.\d+')

match=p.finditer(str)

print(match)#輸出結果是:,這就是乙個迭代器

#怎麼訪問呢?

#一種方法是:

#next(match)#輸出是<_sre.sre_match object; span=(5, 9), match='.168'>

#繼續next(match)訪問下乙個匹配的結果

#或者用for:

for i in match:

print(i)#<_sre.sre_match object; span=(5, 9), match='.168'>

x想訪問其中匹配的結果還是要用group():i.group()

簡單的總結一下到底什麼是python

python是一種解釋型語言。這就是說,與c語言和c的衍生語言不同,python 在執行之前不需要編譯。其他解釋型語言還包括php和ruby。python是動態型別語言,指的是你在宣告變數時,不需要說明變數的型別。你可以直接編寫類似x 111和x i m a string 這樣的 程式不會報錯。py...

稍微總結一下

其實整個程式16日的時候應該已經搞得差不多,文件也已經比較詳細。但是由於這個禮拜又是筆試又是面試,所以都沒有時間review整個程式。今天看了一下,改了一些輸出檔案的位置,基本上完成了所有任務了。程式放在 http xiao 81 svn auto testing 下。其中包括三個可執行指令碼 1....

總結一下模板

二叉樹的各種操作 include include include includetypedef struct node tree void createbitree tree p 建樹 return void xpreorder tree p 輸出先序 void zpreorder tree p 輸...