• 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字符

[] 方括号表达式

() 分组

*+?{} 重置前置的正则表达式

无符号 连续

^$ 锚点

| 交替

Leave a Reply

Your email address will not be published. Required fields are marked *