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正则表达式re之compile函数解析
Oct 25 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
Apr 02 Python
python 使用正则表达式按照多个空格分割字符的实例
Dec 20 Python
Python实现计算字符串中出现次数最多的字符示例
Jan 21 Python
python3 批量获取对应端口服务的实例
Jul 25 Python
django fernet fields字段加密实践详解
Aug 12 Python
Python利用全连接神经网络求解MNIST问题详解
Jan 14 Python
python sorted函数原理解析及练习
Feb 10 Python
python通过对字典的排序,对json字段进行排序的实例
Feb 27 Python
python对一个数向上取整的实例方法
Jun 18 Python
如何在keras中添加自己的优化器(如adam等)
Jun 19 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
Jun 24 Python
pandas:get_dummies()与pd.factorize()的用法及区别说明
python spilt()分隔字符串的实现示例
教你用python实现一个无界面的小型图书管理系统
一篇文章带你搞懂Python类的相关知识
Python深度学习之Pytorch初步使用
我对PyTorch dataloader里的shuffle=True的理解
Python快速优雅的批量修改Word文档样式
You might like
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
2013/06/21 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
2014/11/19 PHP
Ajax+PHP实现的分类列表框功能示例
2019/02/11 PHP
JS 按钮点击触发(兼容IE、火狐)
2013/08/07 Javascript
Javascript中对象继承的实现小例
2014/05/12 Javascript
深入了解Node.js中的一些特性
2014/09/25 Javascript
JavaScript使用replace函数替换字符串的方法
2015/04/06 Javascript
javascript中setInterval的用法
2015/07/19 Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
2015/12/02 Javascript
js仿小米官网图片轮播特效
2016/09/29 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
Vue组件之自定义事件的功能图解
2018/02/01 Javascript
解决VUEX兼容IE上的报错问题
2018/03/01 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(上)
2018/04/18 Javascript
基于layui实现高级搜索(筛选)功能
2019/07/26 Javascript
动态创建类实例代码
2009/10/07 Python
Python中Django框架下的staticfiles使用简介
2015/05/30 Python
详解Python中的文件操作
2016/08/28 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
pandas实现to_sql将DataFrame保存到数据库中
2019/07/03 Python
python numpy存取文件的方式
2020/04/01 Python
pygame实现成语填空游戏
2019/10/29 Python
html5使用canvas画空心圆与实心圆
2014/12/15 HTML / CSS
HTML5到底会有什么发展?HTML5的前景展望
2015/07/07 HTML / CSS
Kent & Curwen:与大卫·贝克汉姆合作
2017/06/13 全球购物
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
计算机大学生的自我评价
2013/10/15 职场文书
工程管理专业毕业生自荐信
2014/01/24 职场文书
市级优秀班主任事迹材料
2014/05/13 职场文书
如何写股份合作协议书
2014/09/11 职场文书
师德师风主题教育活动总结
2015/05/07 职场文书
多人股份制合作协议书
2016/03/19 职场文书
Nginx代理同域名前后端分离项目的完整步骤
2021/03/31 Servers
如何解决.cuda()加载用时很长的问题
2021/05/24 Python
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
2021/05/25 Python
原生JavaScript实现简单五子棋游戏
2021/06/28 Javascript