当前位置: 首页 > news >正文

Python(re模块的具体使用)

函数 

功能描述
re.match(pattern,string,flags=0)用于从字符串的开始位置进行匹配,如果起始位置匹配成功,结果为Match对象,否则结果为None。
re.search(pattern,string,flags=0)用于在整个字符串中搜索第一个匹配的值,如果匹配成功,结果为Match对象,否则结果为None.
re.findall(pattern,string,flags=0)用于整个字符串搜索所有符合正则表达式的值,结果是一个列表类型。
re.sub(pattern,repl,sreing,count,flags=0)用于实现对字符串中指定子串的替换
re.split(pattern,string,maxsplit,flags=0)字符串中的split()方法功能相同,都是分隔字符串
import re#导入正则表达式处理模块
pattern='\d\.\d+'
#\d————表示0~9的整数,点表示转义字符
s='i study python3.22 everyday'#匹配字符串
match=re.match(pattern,s,re.I)
# 在 Python 中,re.match(pattern, s, re.I) 表示使用正则表达式模式 pattern 从字符串 s 的起始位置进行匹配,
# 其中 re.I 是一个标志位,表示匹配时不区分大小写。
print(match)#None
s2='3.11python i study every day'
match2=re.match(pattern,s2)
print(match2)#<re.Match object;span=(0,4),match='3.11'>print('匹配值的起始位置:',match2.start())
print('匹配值的结束位置:',match2.end())
print('匹配区间的位置元素:',match2.span())
print('待匹配的字符串:',match2.string)
print('匹配的数据:',match2.group())
# 匹配值的起始位置: 0
# 匹配值的结束位置: 4
# 匹配区间的位置元素: (0, 4)
# 待匹配的字符串: 3.11python i study every day
# 匹配的数据: 3.11

以下是search的用法,总的来说,search可以找到数都是没办法找全 

pattern='\d\.\d+'
s='i study python3.11 every day python 2.7'
match=re.search(pattern,s)
s2='4.10 python i study every day's3='i study python every day'match2=re.search(pattern,s2)
match3=re.search(pattern,s3)#None
print(match)
print(match2)
print(match3)print(match.group())#3.11
print(match2.group())#4.10
#不用写match3因为match3是空字符串

findall

import re
pattern='\d\.\d+'
s='i study python3.11 every day python 2.7'
s2='4.10 python i study every day'
s3='i study python every day'
lst=re.findall(pattern,s)
lst2=re.findall(pattern,s2)
lst3=re.findall(pattern,s3)print(lst)
print(lst2)
print(lst3)#['3.11', '2.7']
# ['4.10']
# []
import re
pattern='黑客|破解|反爬'
s='我想学习Python反爬'
new_s=re.sub(pattern,'XXX',s)
print(new_s)
#我想学习PythonXXXs2='https://cn.bing.com/search?q=xy'
pattern2='[?|=]'
lst=re.split(pattern2,s2)
print(lst)
#['https://cn.bing.com/search', 'q', 'xy']

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • QT通用配置文件库(QPreferences)
  • 【云原生】Prometheus整合Alertmanager告警规则使用详解
  • [集成学习]基于python的Stacking分类模型的客户购买意愿分类预测
  • CentOS 7 yum官方源失效
  • 分布式ID是什么?有哪些解决方案?
  • 准备跳槽了(仍然底层为主,ue独立游戏为辅)
  • 贝叶斯算法理论
  • vue3 antdv3 a-range-picker a-date-picker 获取选择中的日期值
  • LeetCode热题100刷题16:74. 搜索二维矩阵、33. 搜索旋转排序数组、153. 寻找旋转排序数组中的最小值、98. 验证二叉搜索树
  • Python学习笔记40:游戏篇之外星人入侵(一)
  • 【Linux】汇总TCP网络连接状态命令
  • 【Django】网上蛋糕商城后台-订单管理
  • Learning vtkjs之WarpScalar
  • HOW - 保证 WebSocket 持续正常连接
  • [解决方法]Request failed with status code 500错误之一
  • JavaScript 如何正确处理 Unicode 编码问题!
  • echarts的各种常用效果展示
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • SpingCloudBus整合RabbitMQ
  • 第2章 网络文档
  • 关于Flux,Vuex,Redux的思考
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 你不可错过的前端面试题(一)
  • 前端js -- this指向总结。
  • 如何编写一个可升级的智能合约
  • 消息队列系列二(IOT中消息队列的应用)
  • 一个JAVA程序员成长之路分享
  • 怎么将电脑中的声音录制成WAV格式
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • # dbt source dbt source freshness命令详解
  • ## 基础知识
  • #职场发展#其他
  • (1)Android开发优化---------UI优化
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (十)Flink Table API 和 SQL 基本概念
  • (学习总结16)C++模版2
  • (一)Docker基本介绍
  • (正则)提取页面里的img标签
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .net对接阿里云CSB服务
  • //解决validator验证插件多个name相同只验证第一的问题
  • @AliasFor注解
  • @JoinTable会自动删除关联表的数据
  • @Value获取值和@ConfigurationProperties获取值用法及比较(springboot)
  • [.NET]桃源网络硬盘 v7.4
  • [AutoSar]BSW_Memory_Stack_004 创建一个简单NV block并调试
  • [BZOJ5125]小Q的书架(决策单调性+分治DP+树状数组)
  • [C++] cout、wcout无法正常输出中文字符问题的深入调查(1):各种编译器测试
  • [c++] 什么是平凡类型,标准布局类型,POD类型,聚合体
  • [C++][STL源码剖析] 详解AVL树的实现
  • [C语言]——函数递归