python正则表达式re.search()的基本使用教程


Posted in Python onMay 21, 2021

1 re.search() 的作用:

re.search会匹配整个字符串,并返回第一个成功的匹配。如果匹配失败,则返回None 

从源码里面可以看到re.search()方法里面有3个参数

python正则表达式re.search()的基本使用教程

pattern: 匹配的规则,

string : 要匹配的内容,

flags 标志位 这个是可选的,就是可以不写,可以写, 比如要忽略字符的大小写就可以使用标志位

flags 的主要内容如下

flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:

  1. re.I 忽略大小写
  2. re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
  3. re.M 多行模式
  4. re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
  5. re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
  6. re.X 为了增加可读性,忽略空格和 # 后面的注释

2 demo 练习re.search() 的使用

 2.1  search 简单的匹配

import re
 
content = "abcabcabc"
rex = re.search("c", content)
print(rex)

打印结果如下

python正则表达式re.search()的基本使用教程

从内容我们可以看到span(2, 3) 这个应该是对应的下标,所以我们想获取匹配的下标可以使用span 

match 是匹配的内容, 内容为c

2.2 获取匹配的下标

import re
 
content = "abcabcabc"
rex = re.search("c", content)
print(rex.group())

打印结果如下

python正则表达式re.search()的基本使用教程

2.3 获取匹配的内容 ,使用group(匹配的整个表达式的字符串)

import re
 
content = "abcabcabc"
rex = re.search("c", content)
print(rex.group())

打印结果如下

python正则表达式re.search()的基本使用教程

注意group 和span 不能同时使用, 否则会报错

2.4 使用标志位忽略匹配的大小写

import re
 
content = "abcabcabc"
rex = re.search("C", content, re.I)
print(rex.group())

打印结果如下

python正则表达式re.search()的基本使用教程

这里使用大写字母C 忽略大小写之后也能匹配到c

2.5 使用search 匹配字符串里面的数组

import re
 
content = "abc123abc"
rex = re.search("\d+", content)
print(rex.group())

打印结果

python正则表达式re.search()的基本使用教程

2.6 search 结合compile 使用

import re
 
content = "abc123abc"
rex_content = re.compile("\d+")
rex = rex_content.search(content)
print(rex.group())

打印结果

python正则表达式re.search()的基本使用教程

2.7 group 的使用

import re
 
content = "abc123def"
rex_compile = re.compile("([a-z]*)([0-9]*)([a-z]*)")
rex = rex_compile.search(content)
print(rex.group())
print(rex.group(0))  # group()和group(0) 一样匹配的是整体
print(rex.group(1))  # 匹配第一个小括号的内容
print(rex.group(2))  # 匹配第二个小括号的内容
print(rex.group(3))  # 匹配第三个小括号的内容

打印结果

python正则表达式re.search()的基本使用教程

group() 小括号里面不止有数字,可以是自定的内容如下

content = "zhangsanfeng108le"
rex_compile = re.compile("(?P<name>[a-z]*)(?P<age>[0-9]*)")
rex_content = rex_compile.search(content)
print(rex_content.group())
print(rex_content.group("name"))  # 这里效果等同于group(1)
print(rex_content.group("age"))  # 这里效果等同于group(2)

打印结果如下 

python正则表达式re.search()的基本使用教程

总结

到此这篇关于python正则表达式re.search()基本使用的文章就介绍到这了,更多相关python正则表达式re.search()内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python Tkinter GUI编程入门介绍
Mar 10 Python
深入Python解释器理解Python中的字节码
Apr 01 Python
Python中用于去除空格的三个函数的使用小结
Apr 07 Python
在IIS服务器上以CGI方式运行Python脚本的教程
Apr 25 Python
对Python+opencv将图片生成视频的实例详解
Jan 08 Python
python使用Paramiko模块实现远程文件拷贝
Apr 30 Python
PyTorch: 梯度下降及反向传播的实例详解
Aug 20 Python
Python logging设置和logger解析
Aug 28 Python
Python ORM编程基础示例
Feb 02 Python
Python自定义聚合函数merge与transform区别详解
May 26 Python
Python中logging日志的四个等级和使用
Nov 17 Python
Python编解码问题及文本文件处理方法详解
Jun 20 Python
pandas:get_dummies()与pd.factorize()的用法及区别说明
python spilt()分隔字符串的实现示例
教你用python实现一个无界面的小型图书管理系统
一篇文章带你搞懂Python类的相关知识
Python深度学习之Pytorch初步使用
我对PyTorch dataloader里的shuffle=True的理解
Python快速优雅的批量修改Word文档样式
You might like
php编写一个简单的路由类
2011/04/13 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
2012/07/23 PHP
Function eregi is deprecated (解决方法)
2013/06/21 PHP
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
深入理解javascript中defer的作用
2013/12/11 Javascript
js获取图片宽高的方法
2015/11/25 Javascript
JS中判断null的方法分析
2016/11/21 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
浅析bootstrap原理及优缺点
2017/03/19 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
Vue异步加载about组件
2017/10/31 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
2018/12/20 Javascript
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
2019/09/10 Javascript
如何利用Node.js与JSON搭建简单的动态服务器
2020/06/16 Javascript
jQuery实现简单评论区功能
2020/10/26 jQuery
python中黄金分割法实现方法
2015/05/06 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
2018/07/31 Python
Python使用post及get方式提交数据的实例
2019/01/24 Python
python文档字符串(函数使用说明)使用详解
2019/07/30 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
网络管理专业求职信
2014/03/15 职场文书
纠纷协议书
2014/04/16 职场文书
2014旅游局党组书记党建工作汇报材料
2014/11/02 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
2015年餐厅服务员工作总结
2015/04/23 职场文书
国家助学金受助感言
2015/08/01 职场文书
商务英语邮件开头问候语
2015/11/10 职场文书
一文搞懂Python Sklearn库使用
2021/08/23 Python
spring cloud 配置中心客户端启动遇到的问题
2021/09/25 Java/Android
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技
Javascript webpack动态import
2022/04/19 Javascript
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
2022/04/29 Servers