正則表達式: REGEXP REGuler EXPression,使用元字符和其他字符串來描述、匹配一系列符合某個句法規則的字符串。默認儘可能長得匹配(貪婪模式)。
元字符:
.:匹配任意單個字符(文件名通配中?表示任意單個字符)
[]:匹配指定範圍內的單個字符
[^]:匹配指定範圍外的單個字符
[:space:]:空白字符
[:puntt:]:所有標點符號
[:upper:]:所有大寫字母
[:lower:]:所有小寫字母
[:alpha:]:所有大小寫字母
[:digit:]:所有數字
[:alnum:]:所有數字和大小寫字母
字符次數匹配:
*:匹配其前字符任意次數(文件名通配中*表示任意長度的任意字符)
.*:任意長度的任意字符
\?:匹配其前字符一次或零次,可用可無
\{\}:\{m,n\}匹配其前字符至少m次,最多n次
eg:\{1,\}至少1次;\{0,3\}最多3次
位置錨定:
^:錨定行首,其後字符必須出現在行首
$:錨定行尾,其前字符必須出現在行尾
^$:空白行
\<:其後字符必須作爲單詞首部出現,可用\b代替
\>:其前字符必須作爲單詞尾部出現,可用\b代替
eg:\<root\>==\broot\b
分組:\(\)
eg:\(a,b\)*:ab出現任意次
小括號最主要的作用不是爲了使其中的內容當作一個整體被看待,而是方便後面內容引用(後向引用)
eg:\1:調用前面第一個左括號及其與之對應右括號所包括的內容
\n:調用前面第n個左括號及其與之對應右括號所包括的內容
正則表達式:分爲基本正則表達式和擴展正則表達式
擴展正則表達式:
字符匹配:
.,[],[^]與基本正則表達式一樣
次數匹配
*,?:與基本正則表達式一樣,?前不需要加\
+:其前字符至少一次==基本正則表達式中 \(1,\)
{m,n}:至少m次至多n次,與基本正則表達式花括號前少了\
錨定字符:
\< \> ^ $ \b 與基本正則表達式一樣
分組:
():不需加\ 支持 \1,\2,\3,…
或者:
|:or 或者
eg:a|b a或者b
eg:C|cat==C或者cat(而非Cat或者cat)
grep:根據模式去搜索文本,並將符合模式的文本行顯示出來。使用基本正則表達式及其定義的模式來過濾文本的命令。
模式:Pattern 文本字符和正則表達式的元字符組合而成的匹配條件
-i:忽略大小寫
--color:被匹配到的字符加顏色顯示
-o:只顯示被匹配到的字符串
-v:反向查找,顯示沒有被模式匹配到的內容行
-E:使用擴展正則表達式
-A n:顯示被匹配到的行和其後n行
-B n:顯示被匹配到的行和其前n行
-C n:顯示被匹配到的行和其前後各n行
egrep:使用擴展正則表達式及其定義的模式來過濾文本的命令。
egrep=grep -E
fgrep:fast grep 快速查找字符 不支持正則表達式,就按字符串搜索。