1. 程式人生 > >正則表達式語法知識

正則表達式語法知識

fstab 出現 roo 並不是 gre 匹配 空格 特殊 多次

元字符分類

1.字符匹配

. 表示匹配的任意單個字符

2.匹配次數

* 前面的字符出現任意次,包含0次

\? 前面的字符出現0次或者1次

\+ 前面的字符出現1次或者多次

\{n,m\} 前面的字符至少出現n次,最多出現m次

3.位置錨定

正則表達式默認的查找方式是包含,不限定指定字符串出現的位置.

行首 ^

行尾 $

單詞詞首 \<

單詞詞尾 \>

4.分組

\( \)

技術分享圖片

正則表達式組合用法示例

1.如何去掉數字後面的百分號或者其它特殊符號 對已經過濾後的結果再次進行grep即可實現相應的效果 相當於多次grep

技術分享圖片

技術分享圖片

2.cat /etc/fstab | grep -v "^#" | grep -v "^[[:space:]]*$"

[[:space:]]* 當正則表達式中出現匹配次數的時候,它和前面的字符表達式應該當作一個整體

[[:space:]] 表示某行中必須出現一個空格

[[:space:]]* 表示某行中可以不出現空格或者出現1次和任意次空格,它並不是表示必須先出現一個空格然後再判斷在空格後面可以出現或者不出現空格

3.分組匹配的結果

\1 表示的是前面的分組正則表達式匹配到的結果字符串,而不是正則表達式模式本身.前面(r..t)匹配到的字符串是root,所以\1表示的是root而不是 r..t

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

正則表達式 或者的語法

1. echo axy | grep "a\|bxy" 表示需要匹配字符a或者字符串bxy 而不是匹配 axy 或者 bxy

2. echo axy | grep "(a\|b)xy" 表示匹配 axy 或者匹配 bxy

正則表達式語法知識