正则表达式RE
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
元字符
元字符是这样一类字符,他们表达的是不同于字面本身的含义
shell元字符(也称通配符) 由shell来解析,如rm -rf *.pdf,元字符*****shell将其解析为任意多个字符
正则表达式元字符 由各种执行模式匹配操作的程序来解析,比如vim、grep、sed、awk、python...
基本正则表达式元字符
| 元字符 | 功能 | 示例 |
|---|---|---|
| ^ | 行首定位符 | ^root |
| $ | 行尾定位符 | root$ |
| . | 匹配任意单个字符 | r..t |
| * | 匹配前一个字符0到多次 | r*t |
| .* | 任意多个字符 | |
| [] | 匹配指定范围内的一个字符 | [rR]oot |
| [-] | 匹配指定范围内的一个字符 | [a-zA-Z0-9]oot |
| \ | 用来转义元字符,使元字符回归本意 | r\.\.t |
| \< | 词首定位符 | \<root |
| \> | 词尾定位符 | bash\> |
| \(..\) | 匹配稍后使用的字符标签 | %s/(bin)/bash/\1/sh/g |
| x\ | 字符x重复出现m次 | |
| x\ | 字符x重复出现m次以上 | |
| x\ | 字符x重复出现m到n次 |
拓展正则表达式元字符
| 元字符 | 功能 | 示例 |
|---|---|---|
| + | 匹配前一个字符1到多次 | ro+t |
| ? | 匹配前一个字符0次或1次 | ro?t |
| a|b | 匹配a或b | root|leo |
| () | 组字符 | (ot)+ |
| (..)(..)\1\2 | 标签匹配字符 | (love)able\1er |
| x | 字符x重复出现m次 | |
| x | 字符x重复出现m次以上 | |
| x | 字符x重复出现m到n次 |
POSIX字符类
| 元字符 | 功能 | 示例 |
|---|---|---|
| [:alnum:] | 任意数字或字母 | [[:alnum:]]+ |
| [:alpha:] | 任意大小写字母 | [[:alpha:]] |
| [:blank:] | 空格与制表符 | [[:blank:]]* |
| [:digit:] | 任意数字 | [[:digit:]]? |
| [:lower:] | 小写字母 | [[:lower:]] |
| [:upper:] | 大写字母 | [[:upper:]] |
| [:punct:] | 标点符号 | [[:punct:]] |
| [:space:] | 包括换行符、回车等在内的所有空白 | [[:space:]]+ |
浙公网安备 33010602011771号