shell中的正则表达式
- 基本正则表达式元字符
元字符 | 功能 | 实例 |
^ | 行首定位符 | ^root |
$ | 行尾定位符 | root$ |
. | 匹配单个字符 | l…e |
* | 匹配前导符0到多次 | l*e |
.* | 任意多个字符 | |
[] | 匹配指定范围内任意一个字符 | [lL]ove |
[-] | 匹配指定范围内的任意一个字符 | [a-zA-z]ove |
[^] | 匹配不在指定范围内的任意一个字符 | [^0-9]ove |
\ | 用来转义元字符 | \. |
\< | 词首定位符 | <root |
\> | 词尾定位符 | bash> |
…… | 匹配稍后要使用的字符标签 | :3,9 s/(.*)/#\1/ |
x\{m\} | 匹配x字符m次 | ro{2}t |
x\{m,\} | 匹配x字符m次以上 | ro{1,}t |
x\{m,n\} | 匹配x字符m到n次 | r{1,2}t |
扩展元字符(grep不能用,egrep能用)
元字符 | 功能 | 实例 |
? | 匹配0个或一个 | roo?t |
+ | 匹配1个或多个 | roo+t |
() | 组字符,把括着的看作整体 | r(oo)+t |
| | 匹配或 | a|b |
(…)(…) | 标签匹配字符 | (abc)(abc)\1\2 |
x{m} | x匹配m次 | ro{2}t |
x{m,} | x匹配m次以上 | ro{1}t |
x{m,n} | x匹配m到n次 | ro{1,2}t |
POSIX字符类
表达式 | 功能 | 实例 |
[:alnum:] | 字母与数字字符 | [[:alnum:]]+ |
[:alpha:] | 字母字符(包括大小写字母) | [[:alpha:]]* |
[:blank:] | 空格与制表符 | [[:blank:]]* |
[:digit:] | 数字字母 | [[:digit:]]{3} |
[:lower:] | 小写字母 | [[:lower:]]{2} |
[:upper:] | 大写字母 | [[:upper:]]{4} |
[:punct:] | 标点符号 | [[:punct:]]+ |
[:space:] | 包括换行符,回车等在内的所有空白 | [[:space:]]+ |