正規表示式不僅僅適用於python,而且在其他語言中也是很重要的一部分,本文旨在讓python小白對於正規表示式有乙個整體的認識和體驗。
**什麼是正規表示式?它是嵌入python的微小的、高度專業化的語言;它是處理字串的強大工具。
正規表示式能幹什麼?它能對字串進行匹配、切割、替換、獲取。
什麼是元字元?
特殊符號和字元總稱為元字元
基本元字元有哪些?
反斜槓「\」在正規表示式使用中真的很重要!但是因為特殊字元導致表示式很混亂,原生字串「r」和反斜槓「\」搭配使用後就很大程度上避免了混亂。
分組分配
什麼叫做分組?
在正規表示式中用用一對 () 來表示位於其中的內容屬於乙個分組。
分組物件
)#輸出匹配到的字串
#輸出第乙個括號內的內容
#輸出第二個括號內的內容
'python'
>>
>m.start(1)
#輸出第一組字串的起始位置
0>>
>m.end(0)
#輸出字串的結束位置
21>>
>m.span(1)
#輸出第一組字串的起始位置和結束位置
(0,10)
re模組是什麼?它是python提供處理正規表示式的標準模組。
re模組有什麼函式和正規表示式緊密相關?
注意:流程圖及**格式中的主要引數含義
pattern表示要匹配的正規表示式
string表示要匹配的字串
maxsplit表示最大分割次數,預設值為0,不限制次數
flag表示標誌位,用於控制正規表示式的匹配模式
repl表示替換成分的內容
count表示最大替換次數,預設值0表示替換所有匹配
以下是flags的取值及其含義:
(1)re.match () 函式
(2)re.search () 函式
兩個函式的相同:只匹配一次
兩個函式的不同:match()函式掃瞄整個字串之後返回第乙個成功的匹配;search()可以使用group(num)或者groups()匹配物件函式來獲取表示式。
(3)re.findall () 函式:此函式會將所有能匹配到的字串以列表形式列印出來。
(4)re.split () 函式
(5) re.split () 函式
格式如下:
re.split(pattern,string[
.maxsplit =0]
)
(6) sub () 與subn () 函式:此函式優於傳統字串操作的地方在於可對乙個字串中所有與正規表示式相匹配的內容進行替換;也可以自定義替換次數。
格式如下:
re.sub(pattern,repl,string,count =
0,flags =0)
re.sub(pattern,repl,string,count =
0,flags =
0)
#使用正規表示式查詢文字中最長的字串
import re#匯入import模組
deflongest1
(s):
#定義函式longest1
t = re.findall(
'\d+'
,s)#使用re.findall()函式返回乙個列表
print
(max
(t,key =
len)
)#列印列表t中最長的字串
if t:
#if語句:
return
max(t,key =
len)
return-1
s ="1234656dfahgf14564358"
longest1(s)
#呼叫longest1函式
結果:14564358
倒置乙個英語句子(以單詞為基本單位)
import re
defreverse
(s):
t= re.split(
"\s+"
,s.strip())
t.reverse(
)return
" ".join(t)
s="life is short, you need python."
reverse(s)
結果:'python. need you short, is life'
用正規表示式提取python中的所有函式名
import re
filename =
input
("檔名稱"
)filenames =
pattern =
"def(\w+)"
witn open
(filename,encoding =
"utf8"):
for line in fp:
result = re.findall(pattern,line)
if result:
filenames.extend(filename)
print
(filenames)
正規表示式學習筆記 python
import re re.findall pattern,string,flags 0 pattern 指的是,正規表示式匹配規則 string 指的是,要進行匹配的字串 flags 指的是,可選引數,進行特定條件的匹配,如能讓匹配時不區分大小寫的re.i和能讓元字元.匹配 n的re.s match...
python正規表示式學習筆記
正規表示式是乙個特殊的字串行,它能幫助你方便的檢查乙個字串是否與某種模式的匹配 re.mach嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match 就返回none.函式語法 re.match pattern,string,flads 0 函式引數說明 匹配的正規表示式 patt...
Python 正規表示式筆記
python 正規表示式筆記 正規表示式的先行斷言 lookahead 和後行斷言 lookbehind 正規表示式的先行斷言和後行斷言一共有4種形式 pattern 零寬正向先行斷言 zero width positive lookahead assertion pattern 零寬負向先行斷言 ...