正则表达式

发布时间 2023-11-22 17:27:48作者: Leo_CGL

正则表达式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:]]+