Python 库学习 —— Re 正则表达式

对于正则表达式其实网上有很多说明,而且各种校验都比较全面了,很多时候其实不需要我们写,直接网上搜。但当我们拿到一个正则表达式时,我们要能看懂。所以,下面给出一个常用操作符,忘记了可以看看。


系列文章

Python 学习 01 —— Python基础
Python 库学习 —— urllib 学习
Python 库学习 —— BeautifulSoup4学习
Python 库学习 —— Re 正则表达式
Python 库学习 —— Excel存储(xlwt、xlrd)
Python 学习 02 —— Python爬虫
Python 库学习 —— Flask 基础学习
Python 学习03 —— 爬虫网站项目


正则表达式常用操作符

Re库主要功能函数

对Re库我们主要会用到search()、findall()、sub(),下面进行说明。

举例:

import re

# search 返回一个match对象
# 方式1:先编译,再对编译的进行搜索
pat = re.compile("AA")
print(pat.search("ABCA"))  # 没找到匹配的,输出 None
print(pat.search("ABCAA"))  # 有匹配,输出 <re.Match object; span=(3, 5), match='AA'>

# 方式2:直接搜索
print(re.search("[0-9]", "A0B1C2"))  # re.search(正则表达式, 被校验的字符串)

# findall(正则表达式, 被校验字符串),返回匹配的列表
print(re.findall("[A-Z]+", "ABabCd"))  # 输出 ['AB', 'C']

# sub(str1, str2, str3):在str3中找str1,并用str2替换
print(re.sub("a", "A", "abcABCaA"))  # 输出 AbcABCAA

# 建议在正则表达式中,被比较的字符串前面加r,这样就不用担心转义字符的问题。

正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志,作为上面几个方法的参数。

如果要加入多个标志,可以用|指定。例如re.l|re.M

举例:

正则表达式中,“.”的作用是匹配除“\n”以外的任何字符,也就是说,它是在一行中进行匹配。这里的“行”是以“\n”进行区分的。

下面的例子中,字符串a第一行末尾有字符"\n",如果不使用re.S参数,则只在第一行内进行匹配。显然第一行无法匹配,所以换到第二行重新开始,不会跨行。

使用re.S参数以后,正则表达式会将a字符串作为一个整体,将“\n”当做一个普通的字符加入到这个字符串中,在整体中进行匹配。

a = '''hellopass:
    worldaf
    '''
b = re.findall('hello(.*?)world', a)  # (.*?)表示 任意个字符
c = re.findall('hello(.*?)world', a, re.S)
print('b is ', b)  # 输出 b is  []
print('c is ', c)  # 输出 c is  ['pass:\n    ']
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老板来碗小面加蛋~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值