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实现竖排打印传单手机号码易撕条
Mar 16 Python
Python学习小技巧之列表项的拼接
May 20 Python
Django自定义分页效果
Jun 27 Python
Python探索之修改Python搜索路径
Oct 25 Python
浅谈pandas中shift和diff函数关系
Apr 08 Python
python3模块smtplib实现发送邮件功能
May 22 Python
python numpy数组的索引和切片的操作方法
Oct 20 Python
Python3.5面向对象与继承图文实例详解
Apr 24 Python
python实现比对美团接口返回数据和本地mongo数据是否一致示例
Aug 09 Python
基于pytorch padding=SAME的解决方式
Feb 18 Python
Python如何读写字节数据
Aug 05 Python
通用的Django注册功能模块实现方法
Feb 05 Python
pandas:get_dummies()与pd.factorize()的用法及区别说明
python spilt()分隔字符串的实现示例
教你用python实现一个无界面的小型图书管理系统
一篇文章带你搞懂Python类的相关知识
Python深度学习之Pytorch初步使用
我对PyTorch dataloader里的shuffle=True的理解
Python快速优雅的批量修改Word文档样式
You might like
PHP使用PDO访问oracle数据库的步骤详解
2017/09/29 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
在 Laravel 中动态隐藏 API 字段的方法
2019/10/25 PHP
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
原生js拖拽(第一课 未兼容)拖拽思路
2013/03/29 Javascript
ExtJS下书写动态生成的xml(兼容火狐)
2013/04/02 Javascript
用jquery等比例控制图片宽高的具体实现
2014/01/28 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
jquery+php实现滚动的数字特效
2015/11/29 Javascript
jQuery同步提交示例代码
2015/12/12 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
2016/05/21 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
JS遍历对象属性的方法示例
2017/01/10 Javascript
微信小程序 网络请求(post请求,get请求)
2017/01/17 Javascript
js实现数组内数据的上移和下移的实例
2017/11/14 Javascript
vue实现的下拉框功能示例
2019/01/29 Javascript
简单了解Ajax表单序列化的实现方法
2019/06/14 Javascript
[02:27]DOTA2英雄基础教程 莱恩
2014/01/17 DOTA
[01:44]剑指西雅图 展望TI之CIS战队专访
2014/06/25 DOTA
[40:03]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
总结python实现父类调用两种方法的不同
2017/01/15 Python
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
Python3安装Scrapy的方法步骤
2017/11/23 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
2019/01/07 Python
python远程邮件控制电脑升级版
2019/05/23 Python
python实现点击按钮修改数据的方法
2019/07/17 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
2019/08/05 Python
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
2020/04/08 HTML / CSS
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
班级学习雷锋活动总结
2014/07/04 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
高中生国庆节演讲稿范文2014
2014/09/21 职场文书
求职信范文怎么写
2015/03/19 职场文书
2016年小学生寒假总结
2015/10/10 职场文书
维护民族团结心得体会2016
2016/01/15 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书