正则表达式常用元字符

正则表达式常用元字符

摘自《正则表达式必知必会(修订版)》,做此整理,以便查阅。

目录:

1.基本元字符

2.量词元字符

3.位置元字符

4.匹配模式元字符

5.特殊字符元字符

6.反向引用和环视元字符

7.大小写转换元字符

8. 空白字符

9.POSIX字符


基本的元字符

元字符说明
.匹配任意单个字符
|逻辑或运算符
[ ]匹配该字符集合中的一个字符
[^]排除该字符集合
-定义一个范围(例如[A-Z])
\对下一个字符转义

量词元字符

元字符说明
*匹配前一个字符(子表达式)的零次或多次重复
*?*的懒惰型版本
+匹配前一个字符(子表达式)的一次或多次重复
+?+的懒惰型版本
匹配前一个字符(子表达式)的零次或一次
{n}匹配前一个字符(子表达式)的n次重复
{m,n}匹配前一个字符(子表达式)的至少m次且至多n次重复
{n, }匹配前一个字符(子表达式)的n次或更多次重复
{n, }?{n, }的懒惰型版本

注 : 量次*、+、?是贪婪的,会一次尽可能多的匹配更多字符

懒惰型版本量词在第一次匹配时就会停下

位置元字符

元字符说明
^匹配字符串的开头
\A匹配字符串的开头
$匹配字符串的结尾
\z匹配字符串的结尾
\<匹配单词的开头
\>匹配单词的结尾
\b匹配单词的边界(开头和结尾)
\B\b的反义

匹配模式

元字符说明
(?m)多行模式

注: 多行模式迫使正则表达式引擎将换行符视为字符串分隔符

特殊字符元字符

元字符说明
[\b]退格字符
\c匹配一个控制字符
\d匹配任意数字字符
\D\d的反义
\f换页符
\n换行符
\r回车符
\s匹配任意空白字符
\t制表符(Tab键)
\v垂直制表符
\w匹配任意字母数字字符或下划线字符
\W\w的反义
\x匹配一个十六进制数字
\0匹配一个八进制数字

注: 控制字符即ASCII 0 到 31, 再加上 ASCII 127

反向引用和环视元字符

元字符说明
()定义一个子表达式
\1匹配第一个子表达式;\2匹配第二个子表达式,以此类推
?=肯定式向前查看
?<=肯定式向后查看
?!否定式向前查看
?<!否定式向后查看
?()条件( if then )
?() |条件(if then else)

大小写转换元字符

元字符说明
\E结束\E 或 \U 转换
\l把下一个字符转为小写
\L把后面的字符转换为小写,直到遇到 \E 为止
\u把下一个字符转换为大写
\U把后面的字符转换为大写,直到遇见 \E 为止

空白字符

元字符说明
[\b]回退(并删除)一个字符
\f换页符
\n换行
\r回车符
\t制表符(Tab键)
\v垂直制表符

POSIX字符类

字符类说明
[:alnum:]任何一个字母或数字(等价于[a-zA-Z0-9])
[:alpha:]任何一个字符(等价于[a-zA-Z])
[:blank:]空格或制表符(等价[\t ])
[:cntrl:]ASCII控制字符(ASCII 0 到 31, 再加上 ASCII 127)
[:digit:]任何一个数字(等价于[0-9])
[:graph:]和[:print:]但不包括空格
[:lower:]任何一个小写字母(等价于[a-z])
[:print:]任何一个可打印字符
[:punct:]既不属于[:alnum:],也不属于[:cntrl:]的任何一个字符
[:space:]任何一个空白字符,包括空格(等价于[\f\n\r\t\v ])
[:upper:]任何一个大写字母(等价于[A-Z])
[:xdigit:]任何一个十六进制数字(等价于[a-fA-F0-9])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值