一、正則表達式:
正則表達式(regular expression, RE)是一種字符模式,用于在查找過程中匹配指定的字符。在大多數程序里,正則表達式都被置于兩個正斜杠之間;例如/l[oO]ve/就是由正斜杠界定的正則表達式,正則表達式具備很強大的文本匹配功能,能夠在文本海洋中快速高效地處理文本。
它將匹配被查找的行中任何位置出現的相同模式。在正則表達式中,元字符是最重要的概念。
二、元字符:
定義:元字符是這樣一類字符,它們表達的是不同于字面本身的含義
shell 元字符(也稱為通配符) 由 shell 來解析,如 rm -rf *.pdf,元字符* Shell 將其解析為任意多個字符
正則表達式元字符 由各種執行模式匹配操作的程序來解析,比如 vi、grep、sed、awk、python
1、正則表達式的分類:
正則表達式的字符串表達方法根據不同的嚴謹程度與功能分為基本正則表達式與擴展正則表達式?;A正則表達式是常用的正則表達式的最基礎的部分。
在 Linux?系統中常見的文件處理工具中 grep?與 sed?支持基礎正則表達式,而 egrep?與 awk?支持擴展正則表達式。
==基本正則表達式元字符(gerp)
元字符?功能?示例
^?行首定位符:?^love? $?行尾定位符?:love$? .?匹配單個字符?:l..e? *?匹配前導符?0?到多次:?ab*love .*?任意多個字符 []?匹配指定范圍內的一個字符:?[lL]ove [?-?]?匹配指定范圍內的一個字符:?[a-z0-9]ove [^]?匹配不在指定組內的字符?:[^a-z0-9]ove \?用來轉義元字符?:love\.? \<?詞首定位符?:\<love? \>?詞尾定位符?:love\>? x\{m\}?字符?x?重復出現?m?次:?o\{5\} x\{m,\}?字符?x?重復出現?m?次以上:?o\{5,\}? x\{m,n\}?字符?x?重復出現?m?到?n?次:?o\{5,10\}
“*”僅匹配前導符這一個字符
“[ ]”匹配范圍內一個字符
“^”在元字符集合“[ ]”符號內外的作用不同
轉義符“\”的使用,及特殊元字符的使用
{}限定匹配個數
===擴展正則表達式元字符(egrep)
+?匹配一個或多個前導字符?[a-z]+ove? ??匹配零個或一個前導字符?lo?ve? a|b?匹配?a?或?b?love|hate ()?組字符?loveable|rs?love(able|rs)?ov+ (..)(..)\1\2?標簽匹配字符?(love)able\1er x{m}?字符?x?重復?m?次?o{5}? x{m,}?字符?x?重復至少?m?次?o{5,} x{m,n}?字符?x?重復?m?到?n?次?o{5,10}
()匹配()里的所有字符,順序相同
2、文本處理器:在?Linux?系統中常見的文件處理工具中?grep?與?sed?支持基礎正則表達式,而?egrep?與?awk?支持擴展正則表達式。
grep/egrep:過濾,查找。
grep?[選項]?‘操作’?參數
常用選項
-n:顯示行號 -i:不分大小寫 -v:反向查找 -c:統計數量
awk與sed請看下章。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。