re库的使用及正则表达式

常用正则表达式

from re import compile
percent = compile('([1-9]?[0-9]|100)%’)  # 百分比
date = compile(r'20\d{2}-(0[1-9]|1[012])-(0[1-9]|[12]\d|3[01])’)
time = compile("([01]\d|2[0-3]):([0-5]\d):([0-5]\d)")
weather = compile("(阴|晴|(浓?雾)|(多云)|霾|(浮尘)|(扬沙)|(强?沙尘暴)|(霜冻)|(冻雨)|(雨加雪)|(雨夹雪)|(冰雹)|(雷阵雨(并伴有冰雹)?)|((阵|小|中|大|暴|(特?大暴))(到(阵|小|中|大|暴|(大暴)))?(雨|雪)))(转.)*”)
temperature = compile("-?[1-9]?[0-9]{0,1}(.[1-9])?℃")

re库

注意事项

面向对象用法

regex = re.compile(pattern, flag=0)

result = regex.search(string)

推荐的字符类型

raw srting:忽视转义字符'\'的字符类型

简写为r'text'

匹配取向

默认为贪婪匹配,即匹配符合的最长字符串;在标识前一个字符能出现多次的表达式后加问号即可改为最小匹配。

match对象

属性

属性名称内容
.string待匹配的文本
.re匹配所用的正则表达式
.pos搜索范围的开始位置
.endpos搜索范围的结束位置

 

方法

方法名用途
.group()获得每个表达式中括号对应的文本,0代表表达式整体
.start()获得表达式对应文本的开始位置
.end()获得表达式对应文本的结束位置
.span()(.start(), .end())

函数及常量

函数

函数功能
re.search(pattern, string, flag=0)返回符合pattern的子串的match对象
re.match(pattern, string, flag=0)必须从串首起匹配,其余同search
re.finditer(pattern, string, flag=0)返回符合子串的match对象的迭代器
re.findall(pattern, string, flag=0)返回符合子串的列表
re.split(pattern, string, maxsplit=0, flag=0)按pattern分割string并返回列表
re.sub(pattern, repl, string, count=0, flag=0)将每个符合pattern的子串替换

常量

常量名简写功能
re.IGNORECASEre.I忽略大小写
re.MULTILINEre.M允许^匹配string中每行的开头
re.DOTALLre.S允许.操作符匹配换行符

正则表达式

常用表达式

表达式作用
.对应一个任意字符
[]对应一个其中字符
[^]对应一个不在其中的字符
*前一个字符出现0次或以上
+前一个字符出现1次或以上
?前一个字符出现0次或1次
{m}

前一个字符出现m次

{m, n}前一个字符出现m次到n次(含n次)
|左字符串或右字符串
^匹配字符串头
$匹配字符串尾
()

分组标记,其中只支持|符号

\d匹配所有数字
\w匹配大小写字母、数字和下划线

匹配中文

[\u4e00-\u9fa5]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值