字符匹配:
. # 匹配任意单个字符
[] # 匹配指定范围内的任意单个字符
[^] # 匹配指定范围外的任意单个字符
等
. /*/.* # 不需要在字符串上加引号; 例如: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}"(利用正则表达式分组功能)