1. 标准正则
正则 | 注释 | 举例 |
---|
^ | 行首定位符 | |
$ | 行尾定位符 | |
. | 单个字符,非前导符 | |
* | 前导符出现0到多次 | |
[ ] | 匹配指定范围内的一个字符 | [lL]ove |
[ - ] | 匹配指定范围内的一个字符 | [a-z]ove |
[^] | 匹配不在指定组内的字符 | |
\ | 转义 | |
< | 词首定位符 | |
> | 词尾定位符 | |
(…) | 字符标签 | (love)able\1er |
x{m} | 字符x重复出现m次 | o{5} |
x{m,} | 字符x重复出现 m次以上 | o{5,} |
x{m,n} | 字符x重复出现 m到n次 | o{5,10} |
\d | 数字 | |
\D | 非数字 | |
\w | [0-z]即[0-9A-Za-z] | |
\W | 非数字或字母大小写 | |
\s | 一个空白字符(空格、tab、换页符等) | |
\S | 非空白字符 | |
| | |
使用 () 和 {} 要 \ 转义
示例:grep的正则应用
2. 扩展正则
正则 | 注释 | 举例 |
---|
+ | 匹配一个或多个前导 | [a-z]+ove |
? | 匹配0个或1个前导 | |
a|b | 匹配a或者b | |
标准正则中的 ()和 { } ,在扩展正则中如果外边加了引号,不需要再加反斜杠转义,如:x{m}
,x{m,}
,x{m,n}
示例:grep的扩展正则:
3. POSIX字符类
表达式 | 功能 | 示例 |
---|
[:alnum:] | 字母与数字字符 | [[:alnum:]]+ |
[:alpha:] | 字母字符(包括大小写字母) | [[:alpha:]]{4} |
[:blank:] | 空格与制表符 | [[:blank:]]* |
[:digit:] | 数字字母 | [[:digit:]]? |
[:lower:] | 小写字母 | [[:lower:]]{5,} |
[:upper:] | 大写字母 | [[:upper:]]+ |
[:punct:] | 标点符号 | [[:punct:]] |
[:space:] | 空白(含括换行符,回车) | [[:space:]]+ |