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