正则表达式

正则表达式

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。


re模块

  • 在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块,名字为re

      # 导入re模块
      import re
    
      # 使用match方法进行匹配操作
      result = re.match(正则表达式,要匹配的字符串)
    
      # 如果上一步匹配到数据的话,可以使用group方法来提取数据
      result.group()
    

匹配单个字符

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

匹配多个字符

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

匹配开头结尾

字符功能
^匹配字符串开头
$匹配字符串结尾
  • 匹配163.com的邮箱地址

ret = re.match("[\w]{4,20}@163.com$", email)


匹配分组

字符功能
I匹配左右任意一个表达式
(ab)将括号中字符作为一个分组
\num引用分组num匹配到的字符串
(?P<name>)分组起别名
(?P=name)引用别名为name分组匹配到的字符串
示例1: |

需求:匹配出0-100之间的数字

ret = re.match("[1-9]?\d$ | 100",“08”)
print(ret.group()) # 不是0-100之间

示例2:( )

需求:匹配出163、126、qq邮箱

re.match("\w{4,20}@(163|126|qq).com", "test@qq.com")

示例3:\

需求:匹配出<html>hh</html>

通过引用分组中匹配到的数据即可,但是要注意是元字符串,即类似 r" " 这种格式
re.match(r"<([a-zA-Z])>\w</\1>", “hh”)


re模块的高级用法

search

匹配出文章阅读的次数

ret = re.search(r"\d+", “阅读次数为 9999”)

findall

统计出python、c、c++相应文章阅读的次数

ret = re.findall(r"\d+", “python = 9999, c = 7890, c++ = 12345”)

sub 将匹配到的数据进行替换

将匹配到的阅读次数加1

ret = re.sub(r"\d+", ‘998’, “python = 997”)

还可以指定位置替换数据

a = ‘你好-欢迎-中国’
a1 = re.sub(r’-’,’’,a,1)

weixin063传染病防控宣传微信小程序系统的设计与实现+springboot后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值