正则表达式

常用语法

操作符说明实例
.表示单个字符
[ ]字符集,对单个字符的取值范围[abc]表示a、b、c,[a-z]表示a到z的单个字符
[^ ]非字符集,对单个字符给出排除范围[^abc]表示非a或非b或非c的单个字符
*前一个字符0次或者无限次扩展[abc*]表示ab,abc,abcc,abccc等
+前一个字符1次或者无限次扩展[abc+]表示abc,abcc,abccc等
?前一个字符0次或者1次出现[abc?]表示ab或者abc
|左右表达式任意一个abc|def表示abc或者def
{m}表示前一个字符扩展m次ab{2}c表示abbc
{m,n}表示前一个字符扩展m至n次(含n)ab{1,2}c表示abc或abbc
^匹配字符串开头^abc表示abc且在一个字符串的开头
$匹配字符串结尾abc$表示abc且在一个字符串的结尾
( )分组标记,内部只能使用 | 分割符(abc)表示abc,(abc
\d数字等价于0-9
\w单词字符,等价于[a-zA-Z0-9_]

元字符

  • ‘\d’ 代表数字
  • ‘\D’ 代表非数字字符
  • ‘\w’匹配数字和字母和下划线
  • ‘\W’ 匹配非单词字符(\r,\t,’ ')
  • ‘\s’ 匹配空白字符(空格回车制表)
  • . 匹配除换行符外所有字符

re库函数

函数说明
re.search()在一个字符串中搜索匹配正则表达式中的第一个位置,返回match对象
re.match()从一个字符串的开始位置匹配正则表达式,返回match对象
re.findall()搜多字符串,以列表类型返回全部匹配的子串
re.split()讲一个字符串按照正则表达式匹配结果进行分割,返回列表类型
re.finditer()搜索字符串,返回一个匹配结果的迭代类型每个迭代元素是match对象
re.sub()在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串

match对象

属性

属性说明
.string待匹配的文本
.re匹配时使用的pattern对象
.pos正则表达式搜索文本的开始位置
.endpos正则表达式搜索文本的结束位置

方法

方法说明
.group(0)获得匹配后的字符串
.start()匹配字符串在原始字符串的开始位置
.end()匹配字符串在复试字符串的结束位置
.span()返回元组(.start(),.end())

使用方法

面向对象用法:编译后的多次操作

pat=re.compile(r'[1-9]\d{5}')
rst=pat.findall('BIT 100081')


字符串前面加r表示raw string类型,可以防止转义
如果路径中出现’\t’的话 不加r的话\t就会被转义 而加了’r’之后’\t’就能保留原有的样子

函数式用法:一次性操作

rst=re.findall(r'[1-9]\d{5}','BIT 100081')

flag 标记

re.search(pattern,string,flags=0)

flags: 正则表达式使用的控制标记

常用标记说明
re.I re.IGNORECASE忽略正则表达式的大小写,[A-Z]能够匹配小写字符
re.M re.MULTILINE正则表达式中的^操作符能够将给定字符串的每行当做匹配开始
re.S re.DOTALL正则表达式中的.操作符能够匹配所有字符,默认匹配除换行符外的所有字符
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值