- 正則表達式:REGular EXPression
字符匹配:
. 匹配一個隨機字符
\[^.]:匹配除了點以外任意的字符
[] 匹配指定范圍內的任意單個字符
[^] 匹配指定范圍外的任意單個字符
[:alnum:] 字母和數字
[:alpha:] 代表任何英文大小寫字符,亦即 A-Z, a-z
[:blank:] 空白字符(空格和制表符)
[:space:] 水平和垂直的空白字符(比[:blank:]包含的范圍廣)
[:cntrl:] 不可打印的控制字符(退格、刪除、警鈴…)
[:digit:] 十六進制數字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 標點符號
次數匹配:
*:匹配前面出現的字符n次
.*:表示任意長度的任意字符串
\?:匹配前面出現的字符最多1次
\+:匹配前面出現的字符最少1次
\{n\}:匹配前面出現的字符n次
\{m,n\}:匹配前面出現的字符最少m次最多不超過n次
\{,n\}:匹配前面出現的字符最多n次
\{n,\}:匹配前面出現的字符最少n次
位置錨定:
^:匹配行首
$:匹配行尾
^$:空行
^[[:space:]]$:空白行
\<\>:錨定一個單詞
\<:錨定詞首
\>:錨定詞尾
分組:
echo AAAxxxxBBAAABBB|grep “\(A\)\{3\}.*\(B\)\+\1.*\2”
示例:嵌套分組 \(string1\+\(string2\)*\)
\1 :string1\+\(string2\)*
\2 :string2
后向引用:引用前面的分組括號中的模式所匹配字符,而非模式本身
\1:對分組的內容進行引用,第一個括號就是\1,第二個括號為\2,依此類推
或者:\|
示例:a\|b:a或b C\|cat:C或cat \(C\|c)at:Cat或cat - 擴展正則表達式:Extended REGular EXPression
字符匹配:
.:任意單個字符
[]:指定范圍的字符
[^]:不在指定范圍的字符
次數匹配:
*:匹配前面字符任意次
?:0次或1次
+:1次或多次
{m}:匹配m次
{m,n}:至少m,至多n次
位置錨定
^:行首
$:行尾
\<,\b:語首
\>,\b:語尾
分組:
()
反向引用:
\1,\2, …
或者:
a|b:a或b
C|cat:C或cat
(C|c)at:Cat或cat
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/92508