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中DJANGO简单测试实例
May 11 Python
python实现堆和索引堆的代码示例
Mar 19 Python
Python输入二维数组方法
Apr 13 Python
Pycharm设置utf-8自动显示方法
Jan 17 Python
十分钟搞定pandas(入门教程)
Jun 21 Python
python求质数列表的例子
Nov 24 Python
如何用OpenCV -python3实现视频物体追踪
Dec 04 Python
在django中form的label和verbose name的区别说明
May 20 Python
如何利用python之wxpy模块玩转微信
Aug 17 Python
python将图片转为矢量图的方法步骤
Mar 30 Python
Python 键盘事件详解
Nov 11 Python
Django基础CBV装饰器和中间件
Mar 22 Python
pandas:get_dummies()与pd.factorize()的用法及区别说明
python spilt()分隔字符串的实现示例
教你用python实现一个无界面的小型图书管理系统
一篇文章带你搞懂Python类的相关知识
Python深度学习之Pytorch初步使用
我对PyTorch dataloader里的shuffle=True的理解
Python快速优雅的批量修改Word文档样式
You might like
PHP中mysql_field_type()函数用法
2014/11/24 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
jQuery ajax dataType值为text json探索分享
2013/09/23 Javascript
jQuery.fn和jQuery.prototype区别介绍
2013/10/05 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
IE中getElementsByName()对有些元素无效的解决方案
2014/09/28 Javascript
javascript实现滑动解锁功能
2014/12/31 Javascript
JavaScript设计模式经典之命令模式
2016/02/24 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
vue.js从安装到搭建过程详解
2017/03/17 Javascript
js简易版购物车功能
2017/06/17 Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
2017/10/26 Javascript
SVG实现时钟效果
2018/07/17 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
分享Angular http interceptors 拦截器使用(推荐)
2019/11/10 Javascript
Vue实现小购物车功能
2020/12/21 Vue.js
[02:54]DOTA2亚洲邀请赛 VG战队出场宣传片
2015/02/07 DOTA
Python实现登录人人网并抓取新鲜事的方法
2015/05/11 Python
举例讲解Python中字典的合并值相加与异或对比
2016/06/04 Python
python之pyqt5通过按钮改变Label的背景颜色方法
2019/06/13 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
Python操作SQLite数据库过程解析
2019/09/02 Python
Python使用matplotlib绘制圆形代码实例
2020/05/27 Python
英国蜡烛、蜡烛配件和家居香氛购买网站:Yankee Candle
2018/12/12 全球购物
行政管理专业推荐信
2013/11/02 职场文书
护理学毕业生求职信
2013/11/14 职场文书
预备党员入党自我评价范文
2014/03/10 职场文书
放飞中国梦演讲稿
2014/04/23 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
学雷锋活动简报
2015/07/20 职场文书
自书遗嘱范文
2015/08/07 职场文书
幼儿园小班教师随笔
2015/08/14 职场文书
什么是Python装饰器?如何定义和使用?
2022/04/11 Python