正則表達式(regular expression, RE)是一種字符模式,用于在查找過程中匹配指定的字符。
在大多數程序里,正則表達式都被置于兩個正斜杠之間;例如/lv[o0]e/就是由正斜杠界定的正則表達式,它將匹配被查找的行中任何位置出現的相同模式。在正則表達式中,元字符是最重要的概念。
shell通配符 元字符
*? 任意多個字符? ?? ???[ ]?指定的一個字符? ?[? -? ] ??指定范圍的一個字符
正則元字符:
基本表達式 : .? 單個字符? ?? ?[ ]? [^]指定的一個字符? ?[? -? ] ??指定范圍的一個字符
次數匹配:? ? ?*? 任意次數 (>=0)? ? \? 0或者1個?
x\{m\}? x重復出現m次? ? x\{m,\} x重復出現m次以上? ? x\{m,n\} x重復出現至少m,最多到n次
錨定: ^ 行首? ?$ 行尾? ? ?\ <? ?\b? 錨定詞首? ? ?\>? ?\b 錨定詞尾? ?? ?
\( .\) 匹配稍后將要使用的標簽 和?\1 一起使用
擴展元字符(使用 \ 轉義或者egrep):
+? ?1個或者多個(>=1使用 \ 轉義或者egrep)? ? ?? 0或者1個?? ??? ? ? ? ? a|b? ?或者? ? ?lo( able|re)組字符? ?
( ...)( ...) 匹配稍后將要使用的標簽 和?\1\2\3一起使用? ?x{m}? ??x{m, }??x{m,n}
POXIX字符集
[:alnum:] 字母與數字字符? ? ?[:alpha:] 字母字符? ? [:blank:]? 空格與制表符
[:digit:]數字字母? ? ? ? ? ? ? ? ? ?[:lower:]? 小寫字母? ? [:upper:]? 大寫字母
[:punct:] 標點符號? ?[:space:] 包括換行符、回車等在內的所有空白
空行? /^$/? ?/^[\t]*$/? ? ? 注釋行 /^#/?? /^[\t]*#/
?
?
grep? -i? 忽略大小寫? ? -l只列出匹配行所在的文件名? ?-n在每一行前面加上他所在文件中的相對行號
? ? ? ? ?-c? 顯示匹配成功的行數? ?-s 禁止顯示文件不存在或者文件不可讀的錯誤信息
? ? ? ? ?-q靜默? ? -v反向查找? ?-R遞歸? ?-o顯示匹配的行??
? ? 找到返回0? 沒有找到返回1? ? 找不到文件路徑返回2