Python的正则表达式和re模块

1. 正则表达式

1.1 用处

正则表达式就是记录文本规则的代码

这句话我觉得概括的很精炼.

1.2 元字符

正则表达式里有一些元字符, 他们代表的是很多意思, 有某种特征的集合呀, 不包括某种字符的集合呀.

1.2.1 匹配字符种类的元字符

以下探讨的都是代表一个字符的元字符.

. : 就是英文字符的句号 . , 匹配除了换行符以外的任意字符。

\s: 匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等.
\S: 匹配任意不是空白符的字符.

\w: 匹配字母[a-z], [A-Z] 或数字[0-9] 或下划线_ 或汉字等.
\W: 匹配任意不是字母,数字,下划线,汉字的字符.

\d: 是匹配一位数字从0到9, 任意一个数字就行。
\D: 匹配任意非数字的字符

\b: 并不匹配这些单词分隔字符中的任何一个,它只匹配一个位置. 这个位置和后一个字符或者前一个字符的类型不一样.
比如: \b\w, 这个\b就是匹配不是\w的字符, 并且不会匹配到这个字符; 如果是\b. , 就是匹配不是. 的字符. 就近匹配,比如\bAB 匹配A,AB\b 匹配B
\B: 就是上面反过来, 说不清, 举例来看: ‘aabbc’ 中 ‘\Ba’ 匹配的是第二个a, 因为\B代表跟后面的字符类型一样的字符, 但是不要这个\B代表的字符.

[ ]:从中挑一个字符, 注意是一个字符, 例如[fuck]就是从f, u, c, k 四个字符中挑选一个, 还有[0-9]从0到9选一个, 还有[a-d]或者[E-G], 从a, b, c, d 或者E, F, G中选一个.

| : 从前或者后, 选出取个来, 是或的意思. 例如: ‘abc|de’ 的符合匹配对象是’abc’ 或者’de’, 而不是’abc’ 或’abde’. 一定要注意.

[^ ]: 取反^配合[ ]使用, 就是[ ]内的字符以外的字符都可以, 例如: [^\d]匹配除了数字以外的任意字符, [^aeiou]匹配除了aeiou这几个字母以外的任意字符.

\A: 代表后面这个字符必须在字符串开头. 例如: ‘aba’ 用’\Aa’ 来匹配, 能匹配到第一个a, 不能匹配到第二个a; 如果用’\Ab’ 来匹配, 匹配不到.

^: 用来表示, ^后面这个字符, 必须是一行的开始, mutilline模式下, 会按行分隔符分隔成很多行, 所以会有很多行首, 在默认模式和singleline模式下, 就是一个长的字符串, 所以只有一个行首

$: $前面的这个字符, 必须是行尾, 规律同上.

一共11种.

1.2.2 控制字符数量的元字符

配合上面代表字符种类的元字符使用, 接在字符的后面, 可以代表字符重复多少次. 注意, 他们只控制前面一个字符的数量.

贪婪地匹配:
因为能匹配到的数量不确定, 所以就尽可能多的匹配, 比如’@bbb@bbb@’ 中, 用’@.+@’来匹配, 结果是’@bbb@bbb&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值