正则_字符组笔记

字符组中的字符排列顺序不影响字符组的功能,出现重复字符也不会影响

[0123456789]== [9876543210] == [102299345678]

这样写比较复杂,正则表达式提供-范围表示法简化字符组
[0123456789] => [0-9]

Question:-范围表示法为啥要写作[0-9]而不是[9-0]??

在字符组中,’-’ 表示的范围一般是根据字符对应的码值来确定的,码值小的在前,大的在后。写作[9-0]就会出错

[0-9a-zA-Z]:匹配数字、小写字母、大写字母。

在程序中遇到特殊字符需要加’\’来转义,python中提供了原生字符串,正则表达式如何,原生字符串就是如何,不需要考虑正则表达式之外的转义形式如:r"string"

排除型字符组(Negated Character Class)

排除型字符组非常类似普通字符组,只是在方括号”[“之后紧跟一个“^”字符写作[^…] ,表示在当前位置,匹配一个没有列出的字符
如[^0-9]:表示匹配0-9之外的字符

tips:排除型字符组必须要匹配一个字符

字符组简记法

\d == [0-9] # d代表数字digit
\D == [^0-9]
\w == [0-9a-zA-Z] #w代表单词字符word
\W == [^0-9a-zA-Z]
\s == [ \t\r\n\v\f] #s表示空白字符space
\S == [^ \t\r\n\v\f]

正则表达式有许多流派:
1. Perl衍生出来流派PCRE(Per Compatible Regular Expression) 本文案例
2. POSIX(Portable Operating System Interface for unix)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值