正規表示式為高階文字模式匹配
搜尋和匹配的區別:
正規表示式中常見的符號和字元:
管道符號(|),它的意思選擇被管道符號分隔的多個不同的正規表示式中的乙個
匹配任意乙個單個的字元(.):比如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...