Python核心程式設計 第十五章 正規表示式

2021-07-13 20:38:04 字數 2072 閱讀 7427

正規表示式為高階文字模式匹配

搜尋和匹配的區別:

正規表示式中常見的符號和字元:

管道符號(|),它的意思選擇被管道符號分隔的多個不同的正規表示式中的乙個

匹配任意乙個單個的字元(.):比如f.o匹配 在'f'和'o'中間的任意字元

從字串的開頭或結尾或單詞邊界開始匹配(^/$∧b∧ b):

(^caret)或(\a)從字串開頭開始匹配

($)或\z是用來匹配字串的結尾

\b and \b用來匹配單詞邊界,區別是\b匹配的是乙個單詞邊界,\b只匹配出現在乙個單詞中間的模式

建立字元類():使用方括號的正規表示式會匹配方括號裡的任何乙個字元

比如:b[aeiu]t  匹配bat,bet,bit,but

指定範圍(-)和否定(^):a-z、a-z、0-9代表大寫字母  

最常用的正規表示式符號:"*","+","?"

"*"用於匹配它左邊正規表示式出現0次或0次以上的情況

"+"用於匹配左邊的正規表示式至少出現一次的情況

"?"用於匹配左邊的正字表示式出現0次或1次的情況

"{}"括號裡可以是單個的值如,表示匹配n次出現;也可以是一對值,表示匹配m次到n次出現

特殊字元表示,用\d表示十進位制數字,用\w表示整個字元數字的字符集,\s表示空白符

圓括號():對正規表示式進行分組

re模組:核心函式和方法

使用compile()編譯正規表示式

匹配物件:這種物件是在match()或search()被成功呼叫之後返回的結果,其中匹配物件有兩個主要方法:group()和groups()

group()方法返回所有匹配物件或者根據要求返回某個(如果正規表示式沒有子組,將返回全部匹配物件)

groups()返回乙個包含唯一或所有子組的元組(如果正規表示式沒有子組,將返回乙個空組)

用match()匹配字串:

match()函式從字串的開頭開始對模式進行匹配,匹配成功返回匹配物件,否則返回none

search()在乙個字串中查詢,與match不同的是從左到右的搜尋

在正規表示式中想要搜尋某些符號需要反斜號(/)進行轉義     

四個re模組函式和regex方法:findall()、sub()、subn()、split()

findall()用於非重疊地搜尋某字元中乙個正規表示式模式出現的情況(findall()總返回乙個列表

sub()和subn()用於搜尋和替換:將某字串中所有匹配正規表示式模式的部分進行替換(subn()還返回替換的次數)

原始字串(raw strings):使用原始字串是避免ascⅱ字元和正規表示式特殊字元間產生衝突,用r

貪婪匹配:

正規表示式本身預設是貪心匹配的,會盡量「抓取」滿足匹配的最長字串

非貪婪操作符"?"作用是要求正規表示式匹配的字元越少越好

第十五章預習

public class yuxi15 else 字串的比較 字串1.equals 字串2 比較兩個字串的值是否相同,返回boolean型別的值.如果相同,則返回真值,否則返回假值.字串1.equalsignorecase 字串2 忽略大小寫比較字串1和字串2.如果都相同則返回真值 否則返回假值 改...

逆向工程核心原理 第十五章

第十五章的15.3介紹了upx殼的四個迴圈及其作用,接下來我們乙個乙個的看一下 迴圈1 通過 我們能知道,ecx為迴圈次數,迴圈的內容是從edx中讀取乙個位元組放入edi中,這個位元組就是節區 upx0 0042d6fd 8a02 mov al,byte ptr ds edx 將edx放入al 00...

第十五章 物件導向程式設計 一

1 例子 2 派生類對基類的protected成員一樣沒有訪問許可權 3 引用和指標的靜態型別和動態型別可以不同,這是c 多型的基石 4 有的時候想不用多型的機制,可以使用如下方法 item base basep derived double d basep item base netprice 4...