python之re模块

提示:re模块(正则表达式)进行目标匹配


前言

在实际开发过程中经常会有查找符合某些复杂规则的字符串的需要,比如:邮箱、图片地址、手机号码等,这时候想匹配或者查找符合某些规则的字符串就可以使用正则表达式了。

用途:正则表达式主要是用来检查匹配字符串,例如从一堆字符串中搜索自己想要的字符串。

常见方法:
match():从头匹配
search():从整个文本搜索
findall():找到所有符合的
split():分割
sub():替换
group():结果转化为内容
groupdict():结果转化为字典


一、re模块匹配字符串的方法

1.1 match()函数

1.1.1 match()使用方法

只从字符串的最开始与pattern进行匹配,下面是函数的语法:

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

参数说明:
•pattern - 匹配规则;
•string - 字符串;
•flags - 可以使用按位OR(|)指定不同的标志;
•re.match 函数在成功时返回匹配对象,失败时返回None。
使用**group(num)groups()**函数匹配对象来获取匹配的表达式。
其中:可以在匹配规则中增加(),选择输出的匹配结果,如下:

import re
a="GET /huhui.html HTTP1.1"
ret = re.match(r"[^/]+([^ ]*)( HTTP1.1)", a)
>>>ret.group()
>>>'GET /huhui.html HTTP1.1'
>>>ret.group(0)
>>>'GET /huhui.html HTTP1.1'
>>>ret.group(1)
>>>'/huhui.html'
>>>ret.group(2)
>>>' html'

1.1.2 match()函数局限性

match方法匹配规则只能从字符串最开端开始。

1.2 search()函数

1.2.1 search()使用方法

与match()工作的方式一样,但是search()不是从最开始匹配的,而是从任意位置查找第一次匹配的内容。下面是这个函数的语法 :

>>>ret = re.search(r"(/[^ ]*)( HTTP1.1)", a)
>>>ret.group()
>>>'/huhui.html HTTP1.1'
>>>ret.group(0)
>>>'/huhui.html HTTP1.1'
>>>ret.group(1)
>>>'/huhui.html'
>>>ret.group(2)
>>>' html'

1.3 re.findall()函数

1.3.1 re.findall()使用方法

在字符串中找到正则表达式所匹配的所有子串,并返回一个列表。这个函数的语法如下:

>>>ret = re.findall(r"h", a)
>>>ret
>>>['h', 'h', 'h']
>>>type(ret)
>>><class 'list'>

二、re模块匹配字符串的规则

2.1 匹配单个字符规则

代码功能
.匹配任意1个字符(除了\n)
[ ]匹配[ ]中列举的字符
\d匹配数字,即0-9
\D匹配非数字,即不是数字
\s匹配空白,即 空格,tab键
\S匹配非空白
\w匹配非特殊字符,即a-z、A-Z、0-9、_、汉字
\W匹配特殊字符,即非字母、非数字、非汉字

2.2 匹配多个字符规则

代码功能
*匹配前一个字符出现0次或者无限次,即可有可无
+匹配前一个字符出现1次或者无限次,即至少1次
?匹配前一个字符出现1次或者0次,即要么有1次,要么没有
{m}匹配前一个字符出现m次
{m,n}匹配前一个字符出现从m到n次

2.3 其他规则

[^/]匹配不是 / 字符,[^ ]匹配不是空字符。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值