python 正则表达式内容

正则表达式纷繁复杂,权且记录一些简单规则如下:

?代表前面的字符可以出现一次或0次,也就是可有可无。

*匹配0个或多个字符

如果是ab*c这样的正则表达式,不能匹配adc,因为d不在范围内。

+匹配出现一次以上的字符。

{}花括号常用于精准匹配。ab{6}c这里指定b出现6次,{2,6}表示出现次数在2-6之间,{2,}这样代表出现两次以上。

如果句子中出现了多次ab,如abababababc,如果想要匹配,我们这样来(ab)+,这是小括号用法。

|代表“或”,用来匹配a  cat或a  dog的时候,用a  (cat|dog),这个正则表达式中间有个空格

与“|”运算符相关的是字符类。如果匹配由a b c这几个字母构成的单词,可以写作[abc]+  方括号里的内容代表要求匹配的字符只能取自它们。这样可以匹配aabbcc

另外可以在方括号中指定字符的范围[a-z]+代表小写的英文字符。[a-zA-Z]+代表所有的英文字符。[a-zA-Z0-9]+代表所有的英文字符和数字。

如果在方括号前加^,代表匹配除方括号内容以外的字符。如^[0-9]+代表所有非数字字符(包括换行符)。

另外,正则表达式中帮我们定义了一些常用的“元字符”

\d代表数字字符。等同于之前写的[0-9]  这里“\d”和[0-9]在不加“+”时候,都只代表匹配一个字符。

\w代表单词字符,也就是英文中的数字、字符、下划线

\s代表空白符,它同时包含tab和换行符

\D代表非数字字符

\W代表非单词字符

\S代表非空白字符。

句点“.”,代表任意字符,但不包含换行符。

^匹配行首,$匹配行尾。^a只会匹配行首的a , a$只会匹配行尾的a。还有要注意的是[^0-9],匹配的是非数字字符,所以这个符号和中括号组合,还有“非”的意思。

贪婪匹配和懒惰匹配

".+"会匹配尽可能多的字符,

<.+> 会将<span><b>This is a test program</b></span>全部匹配,因为会匹配尽可能多的任意字符,自然包括右尖号。

而<.+?> 这样就可以解决了,它会将贪婪匹配自动切换为懒惰匹配。注意,这个“?”管的是右尖号。

\b代表单词字符的边界,

如果要匹配所有出现的RGB16进制的颜色值,一共有6位,先匹配#,然后一定要a-f(大小写均可),0-9,这里我们这样来,#[a-fA-F0-9]{6}\b

#ffaaff

#ffffffffff

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值