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 相关文章推荐
TensorFlow实现创建分类器
Feb 06 Python
python打包压缩、读取指定目录下的指定类型文件
Apr 12 Python
python中从str中提取元素到list以及将list转换为str的方法
Jun 26 Python
centos6.8安装python3.7无法import _ssl的解决方法
Sep 17 Python
基于python历史天气采集的分析
Feb 14 Python
pyqt5中QThread在使用时出现重复emit的实例
Jun 21 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
Jun 21 Python
用Python配平化学方程式的方法
Jul 20 Python
Python之数据序列化(json、pickle、shelve)详解
Aug 30 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
Jul 13 Python
Python sqlalchemy时间戳及密码管理实现代码详解
Aug 01 Python
利用python进行文件操作
Dec 04 Python
pandas:get_dummies()与pd.factorize()的用法及区别说明
python spilt()分隔字符串的实现示例
教你用python实现一个无界面的小型图书管理系统
一篇文章带你搞懂Python类的相关知识
Python深度学习之Pytorch初步使用
我对PyTorch dataloader里的shuffle=True的理解
Python快速优雅的批量修改Word文档样式
You might like
新手学PHP之数据库操作详解及乱码解决!
2007/01/02 PHP
[原创]php实现数组按拼音顺序排序的方法
2017/05/03 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
jQuery阻止同类型事件小结
2013/04/19 Javascript
浅析JavaScript事件和方法
2015/02/28 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
2015/08/11 Javascript
百度地图给map添加右键菜单(判断是否为marker)
2016/03/04 Javascript
聊一聊JavaScript作用域和作用域链
2016/05/03 Javascript
JS使用cookie实现只出现一次的广告代码效果
2017/04/22 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
Angular2.0/4.0 使用Echarts图表的示例代码
2017/12/07 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
2018/01/13 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
2018/04/28 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
js计算最大公约数和最小公倍数代码实例
2019/09/11 Javascript
基于JQuery实现页面定时弹出广告
2020/05/08 jQuery
基于VUE实现判断设备是PC还是移动端
2020/07/03 Javascript
jQuery实现简单飞机大战
2020/07/05 jQuery
Python编程中实现迭代器的一些技巧小结
2016/06/21 Python
快速入手Python字符编码
2016/08/03 Python
Python及PyCharm下载与安装教程
2017/11/18 Python
Python中最大最小赋值小技巧(分享)
2017/12/23 Python
Python模拟随机游走图形效果示例
2018/02/06 Python
python: line=f.readlines()消除line中\n的方法
2018/03/19 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
基于python实现微信好友数据分析(简单)
2020/02/16 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
python logging模块的使用详解
2020/10/23 Python
Python调用系统命令os.system()和os.popen()的实现
2020/12/31 Python
详解使用HTML5 Canvas创建动态粒子网格动画
2016/12/14 HTML / CSS
乡镇群众路线整改落实情况汇报
2014/10/28 职场文书
煤矿安全生产管理协议书
2016/03/22 职场文书
MySQL数据库 安全管理
2022/05/06 MySQL