柚子快報激活碼778899分享:正則表達式
柚子快報激活碼778899分享:正則表達式
目錄
一.正則表達式是什么?
二.正則表達式的使用場景
三.正則表達式的基本語法
1.字符的基本匹配
1)普通字符
2)特殊字符?
2.正則表達式的特殊字符
1)" . ":
?2)" ^ ":
3)" $ ":?
?3.?字符類 [? ?]
1)[abc]
2)[a-z]
3)[^]
4.量詞
1) " *?"?
2)"?+ "
3)" ? "
4){n}
5){n,}
6){n,m}
5.分組和引用
1)(exp)
2)引用
3)(?:exp)
6.?標志
1)" i "
2)" m?"
3)" s?"
一.正則表達式是什么?
正則表達式(Regular Expression,簡稱 Regex 或 Regexp)是一種用來描述字符串模式的工具,它可以用來匹配、查找以及替換文本中的特定文本片段。正則表達式由普通字符(例如字母、數(shù)字等)和特殊字符(元字符)組成,這些特殊字符具有特定的含義和用途。
二.正則表達式的使用場景
1.文本搜索和匹配
驗證輸入格式:例如驗證郵箱地址、電話號碼、密碼復(fù)雜度等。查找特定模式:從文本中提取符合特定格式的信息,比如查找網(wǎng)頁中的鏈接、提取日期、找出所有匹配的單詞等。過濾和清洗文本:用于從文本中過濾出特定內(nèi)容,或者進行敏感信息的替換。
2.編程中的字符串操作
文本處理:在編程中,正則表達式常用于字符串的匹配、替換和分割操作,例如在 Java、Python、JavaScript 等語言中,通過正則表達式對字符串進行復(fù)雜的處理操作。
3.日志分析和數(shù)據(jù)處理
日志提?。涸诖髷?shù)據(jù)處理中,可以使用正則表達式從日志文件中提取特定信息,例如提取訪問日志中的IP地址、請求路徑等。數(shù)據(jù)清洗:用于清洗和預(yù)處理數(shù)據(jù),去除不需要的內(nèi)容或者格式化數(shù)據(jù)。
4.文本編輯器和集成開發(fā)環(huán)境(IDE)
搜索和替換:現(xiàn)代文本編輯器和IDE通常支持正則表達式進行高級搜索和替換操作,幫助程序員快速定位和修改代碼中的特定模式。
5.網(wǎng)絡(luò)爬蟲和數(shù)據(jù)抓取
網(wǎng)頁內(nèi)容提?。号老x程序可以使用正則表達式從網(wǎng)頁源代碼中提取所需的信息,如抓取新聞標題、價格數(shù)據(jù)等。
6.數(shù)據(jù)庫查詢和數(shù)據(jù)處理
數(shù)據(jù)提取和過濾:在數(shù)據(jù)庫查詢中,可以使用正則表達式進行數(shù)據(jù)的精確提取和過濾,如在 SQL 查詢中使用?REGEXP?條件進行復(fù)雜的數(shù)據(jù)篩選。
7.命令行工具和腳本
批量處理:在 Unix/Linux 環(huán)境中,正則表達式常用于命令行工具如?grep、sed、awk?等中,用來篩選、轉(zhuǎn)換和處理文本數(shù)據(jù)
三.正則表達式的基本語法
1.字符的基本匹配
1)普通字符
? ?大多數(shù)字符(如?a、X、9)在正則表達式中表示它們自己。
示例如下:
當我在表達式輸入 'aa' 后,會自動匹配文中的 'aa'
在表達式中輸入數(shù)字? '45'?
2)特殊字符?
有特殊意義的字符,如?.、$、^、*、+、?、{}、[]、|、()、\,?它們在正則表達式中有獨特的含義,需要用反斜杠?\?進行轉(zhuǎn)義,例如?\.和?\+
?示例如下:
?在表達式輸入 '255\.' 后,會自動匹配文中的 '255.'
2.正則表達式的特殊字符
1)" . ":
匹配除換行符以外的任意單個字符
示例如下:
??在表達式輸入 '.5' 后,會自動匹配文中的5和它前面的任意一個字符 ,包括空白字符
?2)" ^ ":
匹配輸入字符串的開始位置
示例如下:?
加上 ' ^ ' 后,就只有每段開頭的 'aa' 被匹配到了??
3)" $ ":?
匹配輸入字符串的結(jié)束位置
示例如下:
加上 ' $?' 后,就只有每段結(jié)尾的 'ee' 被匹配到了??
?3.?字符類 [? ?]
1)[abc]
匹配任何一個列在括號中的字符(如?a、b、或?c)
示例如下:?
匹配到了 'at' 'bt' 'ct' , [ ]里沒有d ,所以沒有匹配到 'dt'?
2)[a-z]
匹配任何一個從?a?到?z?的小寫字母
示例如下:?
[a-z]->a到z的任意一個字符都可以匹配,
(可以寫成任意兩個字符之間的范圍:[a-f],[c-v]等等)
?[0-9]->0到9的任意一個字符都可以匹配,
(可以將兩個及以上的范圍寫到一起)[a-z0-9] : 0到9或a-z的任意一個字符都可以匹配
3)[^]
匹配任何不在括號中的字符 ( 當' ^ '在[ ]當中時 )
示例如下:?
除了小寫英文字母的所有字符都可以匹配?
任意一個非小寫字母+bomu都可以匹配?
4.量詞
1) " *?"?
匹配前面的子表達式零次或多次
示例如下:?
w后面接零個或多個o都可以匹配?
' . '表示匹配任意一個字符,' .* '就表示匹配任意長度的字符串?
2)"?+ "
匹配前面的子表達式一次或多次
示例如下:?
字符o至少要出現(xiàn)一次的情況
3)" ? "
匹配前面的子表達式零次或一次
示例如下:
字符w出現(xiàn)一次或零次的情況
4){n}
精確匹配 n 次
?示例如下:
字符o出現(xiàn)了一次的情況
5){n,}
匹配 n 次或更多次
示例如下:
字符o出現(xiàn)一次及以上的情況?
6){n,m}
匹配 n 到 m 次
示例如下:?
字符o出現(xiàn)2到3次的情況?
5.分組和引用
1)(exp)
匹配?exp?并捕獲文本到自動命名的組里,它可以通過?\1、\2?等引用
示例如下:?
@后面(abc)可出現(xiàn)零次或多次的情況?
a friut of 后面匹配apple或banana的情況?
2)引用
對于每次數(shù)據(jù)進行匹配時(一行的數(shù)據(jù)或其他情況),對于所有匹配成功的組都會按順序編號存儲起來(/1 ,/2 ,/3....等等,不同版本的編號的命名方式可能不一樣)方便我們再次使用它們
例如:
此時匹配成功的有兩組,它們的編號分別是/1和/2
當我們使用/1時,系統(tǒng)就會對應(yīng)上 a friut of apple,使用/2時,系統(tǒng)就會對應(yīng)上 a friut of banana
3)(?:exp)
匹配?exp?但是不捕獲匹配的文本,不給此括號組分配組號
正常匹配符號分組的字符串,但是系統(tǒng)將不會編號?
6.?標志
當我們使用正則表達式的時候,可以設(shè)置一些標志來改變處理方式
1)" i "
使匹配不區(qū)分大小寫
2)" m?"
多行模式,^?和?$?可以匹配行首行尾?
3)" s?"
使?.?匹配包括換行符在內(nèi)的所有字符?
?到這里關(guān)于正則表達式的講解就結(jié)束了~
柚子快報激活碼778899分享:正則表達式
推薦閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。