1、正則表達式分類:編輯器
一、基本的正則表達式(Basic Regular Expression 又叫 Basic RegEx 簡稱 BREs)函數
二、擴展的正則表達式(Extended Regular Expression 又叫 Extended RegEx 簡稱 EREs)工具
三、Perl 的正則表達式(Perl Regular Expression 又叫 Perl RegEx 簡稱 PREs)post
2、Linux 中經常使用文本工具與正則表達式的關係:編碼
常握 Linux 下幾種經常使用文本工具的特色,對於咱們更好的使用正則表達式是頗有幫助的spa
- grep , egrep 正則表達式特色:
1)grep 支持:BREs、EREs、PREs 正則表達式設計
grep 指令後不跟任何參數,則表示要使用 」BREs「 對象
grep 指令後跟 」-E" 參數,則表示要使用 「EREs「
grep 指令後跟 「-P" 參數,則表示要使用 「PREs"
2)egrep 支持:EREs、PREs 正則表達式
egrep 指令後不跟任何參數,則表示要使用 「EREs」
egrep 指令後跟 「-P" 參數,則表示要使用 「PREs"
3)grep 與 egrep 正則匹配文件,處理文件方法
a. grep 與 egrep 的處理對象:文本文件
b. grep 與 egrep 的處理過程:查找文本文件中是否含要查找的 「關鍵字」(關鍵字能夠是正則表達式) ,若是含有要查找的 」關健字「,那麼默認返回該文本文件中包含該」關健字「的該行的內容,並在標準輸出中顯示出來,除非使用了「>" 重定向符號,
c. grep 與 egrep 在處理文本文件時,是按行處理的
- sed 正則表達式特色
1)sed 文本工具支持:BREs、EREs
sed 指令默認是使用"BREs"
sed 命令參數 「-r 」 ,則表示要使用「EREs"
2)sed 功能與做用
a. sed 處理的對象:文本文件
b. sed 處理操做:對文本文件的內容進行 --- 查找、替換、刪除、增長等操做
c. sed 在處理文本文件的時候,也是按行處理的
- Awk(gawk)正則表達式特色
1)Awk 文本工具支持:EREs
awk 指令默認是使用 「EREs"
2)Awk 文本工具處理文本的特色
a. awk 處理的對象:文本文件
b. awk 處理操做:主要是對列進行操做
3、正則表達式:
基本組成部分
元字符
4、經常使用的正則表達式匹配
一、非負整數:^\d+ 二、正整數:^[0-9]*[1-9][0-9]*$ 三、非正整數:^((-\d+)|(0+))$ 四、負整數:^-[0-9]*[1-9][0-9]*$五、整數:^-?\d+$ 六、非負浮點數:^\d+(\.\d+)?$ 七、正浮點數:^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)| ([0-9]*[1-9][0-9]*))$ 八、非正浮點數:^((-\d+\.\d+)?)|(0+(\.0+)?))$ 九、負浮點數:^(-((正浮點數正則式)))$ 十、英文字符串:^[A-Za-z]+$ 十一、英文大寫串:^[A-Z]+$ 十二、英文小寫串:^[a-z]+$ 1三、英文字符數字串:^[A-Za-z0-9]+$ 1四、英數字加下劃線串:^\w+$ 1五、E-mail地址:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ 1六、URL:^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$ 或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^& lt;>\"\"])*$ 1七、郵政編碼:^[1-9]\d{5}$ 1八、中文:^[\u0391-\uFFE5]+$ 1九、電話號碼:^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9] \d{6,7}(\-\d{1,4})?$ 20、手機號碼:^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$ 2一、雙字節字符(包括漢字在內):^\x00-\xff 2二、匹配首尾空格:(^\s*)|(\s*$)(像vbscript那樣的trim函數) 2三、匹配HTML標記:<(.*)>.*<\/\1>|<(.*) \/> 2四、匹配空行:\n[\s| ]*\r 2五、提取信息中的網絡連接:(h|H)(r|R)(e|E)(f|F) *= *('|」)?(\w|\\|\/|\.)+('|」| *|>)? 2六、提取信息中的郵件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 2七、提取信息中的圖片連接:(s|S)(r|R)(c|C) *= *('|」)?(\w|\\|\/|\.)+('|」| *|>)? 2八、提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+) 2九、提取信息中的中國手機號碼:(86)*0*13\d{9} 30、提取信息中的中國固定電話號碼:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8} 3一、提取信息中的中國電話號碼(包括移動和固定電話):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14} 3二、提取信息中的中國郵政編碼:[1-9]{1}(\d+){5} 3三、提取信息中的浮點數(即小數):(-?\d*)\.?\d+ 3四、提取信息中的任何數字 :(-?\d*)(\.\d+)? 3五、IP:(\d+)\.(\d+)\.(\d+)\.(\d+) 3六、電話區號:/^0\d{2,3}$/ 3七、騰訊QQ號:^[1-9]*[1-9][0-9]*$ 3八、賬號(字母開頭,容許5-16字節,容許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 3九、中文、英文、數字及下劃線:^[\u4e00-\u9fa5_a-zA-Z0-9]+$