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 学习笔记
Dec 27 Python
简单了解Python下用于监视文件系统的pyinotify包
Nov 13 Python
Python3如何解决字符编码问题详解
Apr 23 Python
django站点管理详解
Dec 12 Python
python中pytest收集用例规则与运行指定用例详解
Jun 27 Python
django中SMTP发送邮件配置详解
Jul 19 Python
全面了解django的缓存机制及使用方法
Jul 22 Python
Python实现网页截图(PyQT5)过程解析
Aug 12 Python
python实现代码统计器
Sep 19 Python
Tensorflow tf.tile()的用法实例分析
May 22 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
Jun 15 Python
如何让python的运行速度得到提升
Jul 08 Python
pandas:get_dummies()与pd.factorize()的用法及区别说明
python spilt()分隔字符串的实现示例
教你用python实现一个无界面的小型图书管理系统
一篇文章带你搞懂Python类的相关知识
Python深度学习之Pytorch初步使用
我对PyTorch dataloader里的shuffle=True的理解
Python快速优雅的批量修改Word文档样式
You might like
xajax写的留言本
2006/11/25 PHP
php inc文件使用的风险和注意事项
2013/11/12 PHP
ThinkPHP使用smarty模板引擎的方法
2014/07/01 PHP
php生成QRcode实例
2014/09/22 PHP
php防止恶意刷新与刷票的方法
2014/11/21 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
yii框架数据库关联查询操作示例
2019/10/14 PHP
JavaScript入门教程(3) js面向对象
2009/01/31 Javascript
Js冒泡事件详解及阻止示例
2014/03/21 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
AngularJS 中的Promise --- $q服务详解
2016/09/14 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
2016/10/26 Javascript
微信小程序 五星评价功能的实现
2017/03/09 Javascript
Vue.js实现表格渲染的方法
2018/09/07 Javascript
QRCode.js二维码生成并能长按识别
2018/10/16 Javascript
vue element动态渲染、移除表单并添加验证的实现
2019/01/16 Javascript
vscode vue 文件模板的配置方法
2019/07/23 Javascript
小程序实现密码输入框
2020/11/16 Javascript
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
使用Python实现跳一跳自动跳跃功能
2019/07/10 Python
python tkinter窗口最大化的实现
2019/07/15 Python
Django单元测试工具test client使用详解
2019/08/02 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
tensorflow保持每次训练结果一致的简单实现
2020/02/17 Python
python计算auc的方法
2020/09/09 Python
css3 线性渐变和径向渐变示例附图
2014/04/08 HTML / CSS
使用canvas生成含有微信头像的邀请海报没有微信头像问题
2019/10/29 HTML / CSS
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
this关键字的含义
2015/04/08 面试题
资料员的岗位职责
2013/11/20 职场文书
学习党章的体会
2014/11/07 职场文书
三严三实学习心得体会(精选N篇)
2016/01/05 职场文书
python爬虫之selenium库的安装及使用教程
2021/05/23 Python
python脚本框架webpy模板赋值实现
2021/11/20 Python
SQL Server远程连接的设置步骤(图文)
2022/03/23 SQL Server
Nginx 匹配方式
2022/05/15 Servers