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实现的数据结构与算法之双端队列详解
Apr 22 Python
Python实现简单截取中文字符串的方法
Jun 15 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
Jun 14 Python
详解 Python 读写XML文件的实例
Aug 02 Python
Python 新建文件夹与复制文件夹内所有内容的方法
Oct 27 Python
python实现连续图文识别
Dec 18 Python
如何使用Python自动控制windows桌面
Jul 11 Python
python实现两张图片拼接为一张图片并保存
Jul 16 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
Aug 20 Python
PyTorch中Tensor的数据统计示例
Feb 17 Python
python中逻辑与或(and、or)和按位与或异或(&amp;、|、^)区别
Aug 05 Python
python实现三次密码验证的示例
Apr 29 Python
pandas:get_dummies()与pd.factorize()的用法及区别说明
python spilt()分隔字符串的实现示例
教你用python实现一个无界面的小型图书管理系统
一篇文章带你搞懂Python类的相关知识
Python深度学习之Pytorch初步使用
我对PyTorch dataloader里的shuffle=True的理解
Python快速优雅的批量修改Word文档样式
You might like
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
javawscript 三级菜单的实现原理
2009/07/01 Javascript
javascript 模拟点击广告
2010/01/02 Javascript
jquery插件hiAlert实现网页对话框美化
2015/05/03 Javascript
纯javascript判断查询日期是否为有效日期
2015/08/24 Javascript
Nodejs如何复制文件
2016/03/09 NodeJs
jQuery插件pagination实现无刷新分页
2016/05/21 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
Bootstrap CSS布局之表单
2016/12/17 Javascript
node.js的Express服务器基本使用教程
2019/01/09 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
如何测量vue应用运行时的性能
2019/06/21 Javascript
vue实现购物车小案例
2019/09/27 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
2020/07/22 Javascript
Python批量转换文件编码格式
2015/05/17 Python
Python使用django搭建web开发环境
2017/06/09 Python
Sanic框架配置操作分析
2018/07/17 Python
Python实现查找字符串数组最长公共前缀示例
2019/03/27 Python
python 中pyqt5 树节点点击实现多窗口切换问题
2019/07/04 Python
python编写计算器功能
2019/10/25 Python
Spark处理数据排序问题如何避免OOM
2020/05/21 Python
浅析Python requests 模块
2020/10/09 Python
CSS3动画:5种预载动画效果实例
2017/04/05 HTML / CSS
html5 postMessage解决跨域、跨窗口消息传递方案
2016/12/20 HTML / CSS
中学生学习生活的自我评价
2013/10/26 职场文书
电大毕业自我鉴定
2014/02/03 职场文书
银行批评与自我批评
2014/02/10 职场文书
舞蹈教育学专业自荐信
2014/06/15 职场文书
公司外出活动方案
2014/08/14 职场文书
2016高三毕业赠言寄语
2015/12/04 职场文书
JavaScript+HTML实现学生信息管理系统
2021/04/20 Javascript
centos8安装nginx1.9.1的详细过程
2021/08/02 Servers
React四级菜单的实现
2022/04/08 Javascript
vue2的 router在使用过程中遇到的一些问题
2022/04/13 Vue.js
Redis实现主从复制方式(Master&Slave)
2022/06/21 Redis