python正则表达式re.search()的基本使用教程

 更新时间:2021年05月21日 09:03:02   作者:胡小牧  
正则表达式是我们日常开发中必然会遇到的,下面这篇文章主要介绍了python正则表达式re.search()的基本使用教程,需要的朋友可以参考下

1 re.search() 的作用:

re.search会匹配整个字符串,并返回第一个成功的匹配。如果匹配失败,则返回None 

从源码里面可以看到re.search()方法里面有3个参数

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)

打印结果如下

从内容我们可以看到span(2, 3) 这个应该是对应的下标,所以我们想获取匹配的下标可以使用span 

match 是匹配的内容, 内容为c

2.2 获取匹配的下标

import re
 
content = "abcabcabc"
rex = re.search("c", content)
print(rex.group())

打印结果如下

2.3 获取匹配的内容 ,使用group(匹配的整个表达式的字符串)

import re
 
content = "abcabcabc"
rex = re.search("c", content)
print(rex.group())

打印结果如下

注意group 和span 不能同时使用, 否则会报错

2.4 使用标志位忽略匹配的大小写

import re
 
content = "abcabcabc"
rex = re.search("C", content, re.I)
print(rex.group())

打印结果如下

这里使用大写字母C 忽略大小写之后也能匹配到c

2.5 使用search 匹配字符串里面的数组

import re
 
content = "abc123abc"
rex = re.search("\d+", content)
print(rex.group())

打印结果

2.6 search 结合compile 使用

import re
 
content = "abc123abc"
rex_content = re.compile("\d+")
rex = rex_content.search(content)
print(rex.group())

打印结果

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))  # 匹配第三个小括号的内容

打印结果

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获取CPU和内存信息的思路与实现(linux系统)

    使用python获取CPU和内存信息的思路与实现(linux系统)

    这篇文章主要介绍了python获取CPU和内存信息的思路与实现,有需要的朋友可以参考一下
    2014-01-01
  • 利用Python抢回在蚂蚁森林逝去的能量(实现代码)

    利用Python抢回在蚂蚁森林逝去的能量(实现代码)

    蚂蚁森林是一项旨在带动公众低碳减排的公益项目,每个人的低碳行为在蚂蚁森林里可计为"绿色能量",很多小伙伴都玩过,今天小编给大家分享一篇教程关于Python抢回在蚂蚁森林逝去的能量,感兴趣的朋友跟随小编一起看看吧
    2022-03-03
  • python not运算符的实例用法

    python not运算符的实例用法

    在本篇文章里小编给大家整理了一篇关于python not运算符的实例用法,有需要的朋友们可以学习参考下。
    2021-06-06
  • Django 前后台的数据传递的方法

    Django 前后台的数据传递的方法

    本篇文章主要介绍了Django 前后台的数据传递的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • pyftplib中文乱码问题解决方案

    pyftplib中文乱码问题解决方案

    这篇文章主要介绍了pyftplib中文乱码问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Pandas进行数据编码的十种方式总结

    Pandas进行数据编码的十种方式总结

    在机器学习中,很多算法都需要我们对分类特征进行转换(编码),即根据某一列的值,新增(修改)一列。本文为大家总结了Pandas中十种数据编码的方式,需要的可以参考一下
    2022-04-04
  • python 编程之twisted详解及简单实例

    python 编程之twisted详解及简单实例

    这篇文章主要介绍了python 编程之twisted详解及简单实例的相关资料,需要的朋友可以参考下
    2017-01-01
  • 对python 读取线的shp文件实例详解

    对python 读取线的shp文件实例详解

    今天小编就为大家分享一篇对python 读取线的shp文件实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python可迭代对象去重实例

    python可迭代对象去重实例

    这篇文章主要介绍了python可迭代对象去重实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python入门教程(三十五)Python中文件的打开

    Python入门教程(三十五)Python中文件的打开

    这篇文章主要介绍了Python入门教程(三十五)Python中文件的打开,在Python中文件的读取主要是用open()函数,那么open()函数有哪些方法呢,今天我们就来看一看,需要的朋友可以参考下
    2023-05-05

最新评论