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编码爬坑指南(必看)
Jun 10 Python
Python基于matplotlib绘制栈式直方图的方法示例
Aug 09 Python
PyCharm代码格式调整方法
May 23 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
Dec 06 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
Aug 30 Python
基于python全局设置id 自动化测试元素定位过程解析
Sep 04 Python
Python绘制全球疫情变化地图的实例代码
Apr 20 Python
python代码能做成软件吗
Jul 24 Python
详解Python 最短匹配模式
Jul 29 Python
Python字符串及文本模式方法详解
Sep 10 Python
python em算法的实现
Oct 03 Python
Python正则表达式中flags参数的实例详解
Apr 01 Python
pandas:get_dummies()与pd.factorize()的用法及区别说明
python spilt()分隔字符串的实现示例
教你用python实现一个无界面的小型图书管理系统
一篇文章带你搞懂Python类的相关知识
Python深度学习之Pytorch初步使用
我对PyTorch dataloader里的shuffle=True的理解
Python快速优雅的批量修改Word文档样式
You might like
php获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
php实现源代码加密的方法
2015/07/11 PHP
PHP7.0版本备注
2015/07/23 PHP
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
php 截取utf-8格式的字符串实例代码
2016/10/30 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
2017/10/10 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
2018/03/12 PHP
如何取得中文输入的真实长度?
2006/06/24 Javascript
javascript 数组排序函数
2009/08/20 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
2012/03/01 Javascript
解析js中获得父窗口链接getParent方法以及各种打开窗口的方法
2013/06/19 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
2013/11/20 Javascript
jquery实现的缩略图预览滑块实例
2015/06/25 Javascript
javascript中$(function() {});写与不写有哪些区别
2015/08/10 Javascript
JS修改地址栏参数实例代码
2016/06/14 Javascript
bootstrap使用validate实现简单校验功能
2016/12/02 Javascript
Angularjs 实现移动端在线测评效果(推荐)
2017/04/05 Javascript
uniapp实现可滑动选项卡
2020/10/21 Javascript
Python引用(import)文件夹下的py文件的方法
2014/08/26 Python
python中迭代器(iterator)用法实例分析
2015/04/29 Python
python保存字符串到文件的方法
2015/07/01 Python
python3 模拟登录v2ex实例讲解
2017/07/13 Python
python3.6使用pymysql连接Mysql数据库
2018/05/25 Python
Django多数据库配置及逆向生成model教程
2020/03/28 Python
浅谈keras保存模型中的save()和save_weights()区别
2020/05/21 Python
浅析Python 抽象工厂模式的优缺点
2020/07/13 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
python 绘制场景热力图的示例
2020/09/23 Python
全网最细 Python 格式化输出用法讲解(推荐)
2021/01/18 Python
python绘图模块之利用turtle画图
2021/02/12 Python
一些PHP的面试题
2015/05/06 面试题
中学生打架检讨书
2014/02/10 职场文书
巾帼建功标兵先进事迹材料
2016/02/29 职场文书
工作违纪的检讨书范文
2019/07/09 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
MySQL 如何限制一张表的记录数
2021/09/14 MySQL