python基础(三)-正则表达式

什么是正则表达式?

  • 百度百科说:"正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑

正则表达式的应用场景有哪些?

  • 特定规律字符串的查找,切割、替换等
  • 特定格式(邮箱、手机号、IP、URL等)的校验
  • 爬虫项目中,提取特定内容

在python中使用正则表达式对语句解析,需要借助re模块,re下的相关函数有如下

函数功能
match只从开头进行匹配,匹配到就返回结果对象,没有找到返回None
search从任意位置匹配,功能同上,都是单次匹配,找到一个就停止匹配
findall全部匹配,返回所有匹配的到结果列表,没有找到返回空列表
compile创建正则表达式对象,可以让创建正则对象和内容匹配分开操作

正则表达式中的常用语法

普通字符匹配一对一完全匹配
[ ]:中间的任意一个字符
.除’\n’以外的任意字符
\d数字字符,等价于[0-9]
\D非数字字符,等价于[^0-9]
\w匹配字(数字、字母、下划线)
\s空白字符(\n、\r、\t、空格)
\S非空白字符(\s相反的内容)
\b词边界(开头、结尾、空格、标点)
\B非词边界(\b相反的内容)
次数限定修饰前面的单个字符出现的次数
*任意次
+至少一次
?至多一次
{m}指定m次
{m,n}m <= 次数 <=n
{m,}至少m次
{,m}至多m次
边界限定
^以指定的内容开头
$以指定的内容结尾
贪婪匹配
贪婪最大限度的匹配。正则的匹配默认是贪婪的
非贪婪只要满足条件,能少匹配就少匹配。可以使用’?'取消贪婪

正则切割

import re

c = re.compile(r'\d')

string = '世界上最遥远的距离1不是天涯海角2而是3我站在你面前4你却不知道我爱你'

# 字符串是固定切割,不能解决某类的匹配切割问题
# print(string.split('1'))
# 按照正则进行切割
ret = c.split(string)
print(ret)

# 整体方案
print(re.split(r'\d', string))

正则替换

string = 'ffbloverbfyrloveefbyrefierhfhielovedhewu'
# 字符串替换
new_string = string.replace('love', 'like', 2)
print(new_string)

import re

s = 'I1love2you'
# 正则替换
# s2 = re.sub(r'\d', ' ', s)
# 替换时可以传递一个函数,使用函数的返回值进行替换
def double(s):
    return str(int(s.group()) * 2)
    # return 'xxx'
# 使用专门的处理函数,可以认为的干预替换过程
s2 = re.sub(r'\d', double, s)
print(s2)

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值