linux學習第二周;正則表達式
阿新 • • 發佈:2018-03-17
gpo 利用 pos 引號 擴展正則 inux 學習 分組 bsp 字符匹配:
. # 匹配任意單個字符
[] # 匹配指定範圍內的任意單個字符
[^] # 匹配指定範圍外的任意單個字符
等
. /*/.* # 不需要在字符串上加引號; 例如:go.*gle
匹配次數:
* # 匹配前面的字符任意次,包括0次
.* # 任意長度的任意字符
以下用法都需要在字符串上加雙引號; 例如:"go\{5\}gle"
\? # 匹配其前面的字符0或1次
\+ # 匹配其前面的字符至少1次
\{n\} # 匹配前面的字符n次
\{m,n\} # 匹配前面的字符至少m次,至多n次
\{,n\} # 匹配前面的字符至多n次
\{n,\} # 匹配前面的字符至少n次
位置錨定:
^ # 行首錨定,用於模式的最左側
$ # 行尾錨定,用於模式的最右側
例子:^$ 行首加行為表示空行 (只有回車)
^[[:space:]]*$ 空白行 (有空格有回車)
^PATTERN$ # 用於模式匹配整行
\< 或 \b # 詞首錨定,用於單詞模式的左側
\> 或 \b # 詞尾錨定;用於單詞模式的右側
\<PATTERN\> # 匹配整個單詞
分組:
\(root\) # root可以是其他表示字符串的整體
擴展正則表達式:與正則表達式相比不用加斜線
例如:取所有ip相關的地址
正則表達式:ifconfig | grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"
擴展正則表達式:ifconfig | grep -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" # \.表示轉義. 斜線不能去掉,其余斜線均可去除
正則表達式:ifconfig|grep -o "\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}"(利用正則表達式分組功能)
擴展正則表達式:ifconfig|grep -o "([0-9]{1,3}\.){3}[0-9]{1,3}"(利用正則表達式分組功能)
linux學習第二周;正則表達式