百度 Google Bing
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

正则以及re库的使用

Posted on 2019-05-23 16:06  都说是捡便宜了  阅读(228)  评论(0编辑  收藏  举报

正则表达式

. 可以代表任意字符(换行、空格、翻页符除外)
^a 表示a字母开头
[^a-c] 表示该字符非a\b\c
a? 字母a出现0或1次
a+ 表示字母a出现1次及以上
a* 表示字母a出现0次或以上

{n} 表示匹配前一个字符n次; ex: {2}可以匹配pool,但不匹配pop
{n,} 表示前一个字符至少匹配n次
{n,m} 表示最少匹配n次 最多m次;
? 非贪婪模式; 用于修饰+,*,{}; 进行最短匹配;
a|b 匹配a或者b
[xyz] 字符集合匹配任意一个字符
[^xyz] 负值字符集合,匹配非xyz
\b 匹配单词边界 ex:'er\b' 可以匹配driver中的'er','\bdri' 可以匹配drive中的'dri'
\B 匹配非边界 ex:'er\B'可以匹配verb中的'er',但不能匹配driver中的'er'
\d 匹配数字 等价[0-9]
\D [^0-9]
\w [A-Za-z0-9_]
\W [^A-Za-z0-9_]

re库

re库是python标准库;使用前import re

re库的几个方法:

方法 作用
re.search() 搜索匹配的第一个字符 返回match对象
re.match() 从开始位置搜索匹配的对象并返回match对象,若开头不是匹配的对象则返回None;
re.findall() 搜索所有匹配对象并返回一个列表
re.finditer() 搜索所有匹配项,并返回;每一个返回值都是一个match,通常使用for进行遍历;
re.sub() 用一个字符串替换所匹配项,返回替换后的字符串
re.split() 切割匹配对象,返回剩余对象;默认全切,可加参数;返回列表

re.compile

>>>import re
>>>text_str = 'a,b,,,,cd'
>>>reObj = re.compile(r'[, ]+')
>>>reObj.splie(text_str)

['a', 'b', 'c', 'd']

当然这里的reObj 也可以使用前面的6种方法,这里的pattern就是r'[, ]+',并且不需要再次填写了;