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使用xauth方式登录饭否网然后发消息
Apr 11 Python
Python、PyCharm安装及使用方法(Mac版)详解
Apr 28 Python
基于Python实现定时自动给微信好友发送天气预报
Oct 25 Python
python 为什么说eval要慎用
Mar 26 Python
简单了解Python生成器是什么
Jul 02 Python
python字典的setdefault的巧妙用法
Aug 07 Python
python中通过selenium简单操作及元素定位知识点总结
Sep 10 Python
python 读取更新中的log 或其它文本方式
Dec 24 Python
详解django中Template语言
Feb 22 Python
如何用python绘制雷达图
Apr 24 Python
解决Pytorch中关于model.eval的问题
May 22 Python
Pandas 稀疏数据结构的实现
Jul 25 Python
pandas:get_dummies()与pd.factorize()的用法及区别说明
python spilt()分隔字符串的实现示例
教你用python实现一个无界面的小型图书管理系统
一篇文章带你搞懂Python类的相关知识
Python深度学习之Pytorch初步使用
我对PyTorch dataloader里的shuffle=True的理解
Python快速优雅的批量修改Word文档样式
You might like
PHP 验证码的实现代码
2011/07/17 PHP
Thinkphp实现MySQL读写分离操作示例
2014/06/25 PHP
php与flash as3 socket通信传送文件实现代码
2014/08/16 PHP
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
php中get_object_vars()方法用法实例
2015/02/08 PHP
PHP实现将标点符号正则替换为空格的方法
2017/08/09 PHP
php输出形式实例整理
2020/05/05 PHP
如何快速的呈现我们的网页的技巧整理
2007/07/01 Javascript
IE浏览器兼容Firefox的JS脚本的代码
2008/10/23 Javascript
jquery获得option的值和对option进行操作
2013/12/13 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
2014/02/28 Javascript
window.location.href IE下跳转失效的解决方法
2014/03/27 Javascript
jQuery事件用法实例汇总
2014/08/29 Javascript
JS拖动鼠标画出方框实现鼠标选区的方法
2015/08/05 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
2016/01/19 Javascript
HTML页面,测试JS对C函数的调用简单实例
2016/08/09 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
2017/02/08 Javascript
javascript实现二叉树的代码
2017/06/08 Javascript
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
JavaScript创建、读取和删除cookie
2019/09/03 Javascript
Python多线程编程(六):可重入锁RLock
2015/04/05 Python
python查看列的唯一值方法
2018/07/17 Python
pycharm在调试python时执行其他语句的方法
2018/11/29 Python
CSS3实现背景透明文字不透明的示例代码
2018/06/25 HTML / CSS
AmazeUI 面板的实现示例
2020/08/17 HTML / CSS
白俄罗斯大卖场:21vek.by
2019/07/25 全球购物
ddl,dml和dcl的含义
2016/05/08 面试题
Linux如何修改文件和文件夹的权限
2012/06/27 面试题
少先队学雷锋活动总结范文
2014/03/09 职场文书
亲属关系公证书
2014/04/08 职场文书
《认识钟表》教学反思
2016/02/16 职场文书
解除租赁合同协议书
2016/03/21 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python
Redis实现订单过期删除的方法步骤
2022/06/05 Redis