- meta字符
^ 锚定行或字符串的开始
$ 锚定行或字符串的结束
- 非换行字符
* 匹配多个先前字符或个数为0
[…] 匹配方括号中任一字符或范围[-]
\ 打开或关闭后续字符的特殊含义,BRE,ERE支持不同
B \(\) 标记匹配字符,将\(和\)之间的模式存储在保留空间中,后续使用转义序列引用匹配的模式
B \n 重复\(与\)内的第n个模式
B=E x\{m,n\} = x{m,n} x至少出现m次,最多n次
+
?
|
()
- 支持正则表达式的工具
grep
sed
awk python perl Tcl
more page less
ed vi emacs vim
- POSIX BRE和ERE都支持的meta字符(元字符,特殊字符)
^ 匹配字符串开始
$ 匹配字符串结尾
. 匹配非换行字符
* 匹配0个或多个先前字符
[…] 匹配方括号内任一字符,-表示范围,^表示排除
\ 打开或关闭后续字符的特殊含义(转义)
- 支持不相同的meta字符
BRE
\(\)标记匹配字符。之间的模式存储在保留空间(Holding Space),后续使用转义序列引用
\n 重复\(\)中的第n个模式
x\{m,n\} 匹配x出现的次数
x\{n\} n次
x\{m,\} 至少m次
x\{m,n\} x{m,n} 至少m次,至多n次
ERE
+ 匹配前面正则表达式的一个或多个实例
? 匹配前面零个或一个
| 匹配|前或后的正则表达式
() 匹配用括号括起来的正则表达式群
- grep支持的meta字符
\< 锚定单词的开始
\> 铆钉单词的结束
\w 匹配文字和数字
\W 匹配一个或多个非单词字符,如点号,句号等
\b 单词锁定
- POSIX字符集
[:alnum:] 文字,数字,等效于A-Za-z0-9
[:alpha:] 文字
[:blank:] 空格(space)和定位(tab)
[:digit:] 数字
[:graph:] 非空字符
[:lower:] 小写字符
[:cntrl:] 控制字符
[:print:] 非空字符,包括空格
[:punct:] 标点
[:space:] 所有空白(新行,空格,制表符)
[:upper:] 大写字符
[:digit:] 十六进制数字
- 运算符优先级
BRE运算符
[..][==][::] 方括号符号
\meta 转义的meta字符
[] 方括号表达式
\(\)\n 后向引用表达式
*\{\} 区间表达式和星号表达式
无符号 连续
^$ 锚点
ERE运算符
[..][==][::] 方括号表达式
\meta 转义的meta字符
[] 方括号表达式
() 分组
*+?{} 重置前置的正则表达式
无符号 连续
^$ 锚点
| 交替