python中的group,match-程序员宅基地

正则表达式中,group()用来提出分组截获的字符串,()用来分组



import re
a = "123abc456"
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0)   #123abc456,返回整体
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(1)   #123
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(2)   #abc
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(3)   #456

 

究其因

1. 正则表达式中的三组括号把匹配结果分成三组

  •  group() 同group(0)就是匹配正则表达式整体结果
  •  group(1) 列出第一个括号匹配部分,group(2) 列出第二个括号匹配部分,group(3) 列出第三个括号匹配部分。
  • group(num=0) 匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。
    groups() 返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。

2. 没有匹配成功的,re.search()返回None

3. 当然郑则表达式中没有括号,group(1)肯定不对了。


re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

函数语法

re.match(pattern, string, flags=0)

pattern 是正则表达式, string是需要匹配字符串, flags是标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

匹配成功re.match方法返回一个匹配的对象,否则返回None。

我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。


实例:

match = re.match('/(.*)/(.*)/(.*)', '/usr/home/lumberjack')

match.group()

'/usr/home/lumberjack'

match.group(1)

'usr'

match.group(2)
'home'

match.group(3)
'lumberjack'



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/helinbin/article/details/56484763

智能推荐

centos6.4.yum-lamp环境设置-程序员宅基地

文章浏览阅读47次。  首先防火墙开启mysql:3306 apache 80 and 81端口:vi /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许80端口通过防火墙-A INPUT -m state --state NEW -m tcp -p tcp --dpor...

kvm虚拟化学习笔记(十七)之KVM到KVM之v2v迁移-程序员宅基地

文章浏览阅读80次。原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://koumm.blog.51cto.com/703525/1304271KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安..._virt-v2v -i vmx -it ssh -ip passwordfile

消息队列MQ的特点及API_mq与api接口的区别-程序员宅基地

文章浏览阅读4.1k次。消息队列技术是分布式应用间交换信息的一种技术。消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置、或在继续执行前不需要等待接收程序接收此消息。消息队列的特点:异步 --- 消息队列本身是异步的,它允许接收者在消息发送很长时间后再取回消息,这和大多数通信协议是不同的。 解耦 --- 消息队列减少了..._mq与api接口的区别

王者荣耀服务器维护多久12.4,王者荣耀12月4日维护新活动介绍 王者荣耀维护到几点...-程序员宅基地

文章浏览阅读119次。王者荣耀今天维护到几点?王者荣耀12月4号要维护多久?王者荣耀维护到几点2018?应该有不少玩家在早上都发现了王者荣耀处于维护状态。那么具体的时间是怎么样的呢?下面就随琵琶网小编来了解一下!王者荣耀维护到几点?亲爱的召唤师:我们计划在2018年12月4日7:30-9:00对IOS手Q区、安卓微信区和IOS微信区进行不停机更新。更新结束后,登录即可领取钻石*120+铭文碎片*120!【更新时间】12...

Cisco AP-Mobility Express基础-程序员宅基地

文章浏览阅读647次。Part I 介绍1.1基本概况Cisco Mobility Express这个名词出现在Cisco “8”系列的AP上,例如现在的AP1852,AP2802,AP3802等都是Mobility Express AP,该类AP也有“胖/瘦”之分,所谓的胖AP,携带的是ME的镜像,而瘦AP,和其他的AP类似,携带的是Lightweight AP的镜像。这类AP也被叫做COS AP(...

html网页布局论文,DIV+CSS在网页布局制作中的应用-程序员宅基地

文章浏览阅读945次。网页设计与制作论文第三篇:DIV+CSS在网页布局制作中的应用摘要:布局对网页的作用类似于设计图对地产开发商的作用,制作商务网页的首要内容是对网页进行布局。常见的布局方式有:表格布局、框架布局、层布局,鉴于以上布局方式均存在一定的缺陷逐渐退出历史潮流。目前流行的布局方式是DIV+CSS来制作页面,DIV主要解决网页中的元素(如文字、图片、表格、音视频等)放置在网页显示位置的问题,而CSS主要解决网..._html和css项目论文

随便推点

MyBatis详解-程序员宅基地

文章浏览阅读350次。MyBatis详解

Redis安装教程(保姆级详细图文)-程序员宅基地

文章浏览阅读6k次,点赞8次,收藏31次。Redis最详细安装教程·(建议收藏)_redis安装

SNMP、TELNET、SSH、FTP、DHCP、CSMA/CD面试常问协议初介绍_解释dhcp,snmp是什么?-程序员宅基地

文章浏览阅读2k次。SNMP: 简单网络管理协议(SNMP) 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。面向无连接服务 Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能_解释dhcp,snmp是什么?

基于YOLOv7算法的高精度实时安全背心目标检测识别系统(PyTorch+Pyside6+YOLOv7)-程序员宅基地

文章浏览阅读981次,点赞19次,收藏24次。基于YOLOv7算法的高精度实时安全背心目标检测系统可用于日常生活中检测与定位安全背心,此系统可完成对输入图片、视频、文件夹以及摄像头方式的目标检测与识别,同时本系统还支持检测结果可视化与导出。本系统采用YOLOv7目标检测算法来训练数据集,使用Pysdie6框架来搭建桌面页面系统,支持PT、ONNX等模型权重作为系统的预测模型加载。本系统实现的功能包括:模型权重的选择与初始化;检测置信度与后处理IOU阈值的调节;图像的导入、检测、检测结果的可视化与目标统计;视频的导入、检测、检测结果的可视化与目标统计;文

MFC与SDK_检查mfc用到windows sdk-程序员宅基地

文章浏览阅读317次。MFC即微软基础类(Microsoft Foundation Classes),同VCL类似,是一种Application Framework,随微软Visual C++ 开发工具发布。该类库提供一组通用的可重用的类库供开发人员使用。大部分类均从CObject 直接或间接派生,只有少部分类例外。MFC 应用程序的总体结构通常由开发人员从MFC类派生的几个类和一个CWinApp类对象(应用程序对象)组成。MFC 提供了MFC AppWizard 自动生成框架。 MFC不只是一_检查mfc用到windows sdk

构建能够使用 CPU 运行的 MetaAI LLaMA2 中文大模型_ggml和langchain在cpu上运行量化的llama2-程序员宅基地

文章浏览阅读1.7k次。本篇文章聊聊如何使用 GGML 机器学习张量库,构建让我们能够使用 CPU 来运行 Meta 新推出的 LLaMA2 大模型。_ggml和langchain在cpu上运行量化的llama2