正则表达式中 group groups区别
先看代码instance:
1 >>> a="123abc456"
2 >>> import re
3 >>> print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(0))
4 123abc456
5 >>> print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(1))
6 123
7 >>> print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(2))
8 abc
9 >>> print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(3))
10 456
11 >>> print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group())
12 123abc456
13 >>> print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).groups())
14 (‘123‘, ‘abc‘, ‘456‘)
15 >>> print(re.search("([0-9])*([a-z])*([0-9]*)", a).groups())
16 (‘3‘, ‘c‘, ‘456‘)
17 >>> print(re.search("([0-9])*([a-z])*([0-9]*)", a).groups(1))
18 (‘3‘, ‘c‘, ‘456‘)
19 >>> print(re.search("([0-9])*([a-z])*([0-9]*)", a).group(0))
20 123abc456
21 >>> print(re.search("([0-9])*([a-z])*([0-9]*)", a).group())
22 123abc456
1. 正则表达式中的三组括号把匹配结果分成三组
- m.group() == m.group(0) == 所有匹配的字符(即匹配正则表达式整体结果)
- group(1) 列出第一个括号匹配部分,group(2) 列出第二个括号匹配部分,group(3) 列出第三个括号匹配部分。
- m.groups() 返回所有括号匹配的字符,以tuple格式。m.groups() == (m.group(0), m.group(1), ...)
2. 没有匹配成功的,re.search()返回None
3. 当然正则表达式中没有括号,group(1)肯定不对了。
工作实例:借鉴
os.popen() 方法用于从一个命令打开一个管道。
在Unix,Windows中有效
语法
popen()方法语法格式如下:
os.popen(command[, mode[, bufsize]])
参数
command -- 使用的命令。
mode -- 模式权限可以是 'r'(默认) 或 'w'。
bufsize -- 指明了文件需要的缓冲大小:0意味着无缓冲;1意味着行缓冲;其它正值表示使用参数大小的缓冲(大概值,以字节为单位)。负的bufsize意味着使用系统的默认值,一般来说,对于tty设备,它是行缓冲;对于其它文件,它是全缓冲。如果没有改参数,使用系统的默认值。
返回值
返回一个文件描述符号为fd的打开的文件对象
实例
以下实例演示了 popen() 方法的使用:
#encoding=utf-8
#查看剩余内存:adb shell cat /proc/meminfo com.jingdong.app.mall
#MemFree + Cached = 当前空闲内存,运行app之前和运行后记录内存,差值就是app所占用内存
import os
import re
memfree=""
cached=""
fp = os.popen(r"adb shell cat /proc/meminfo com.jiuqi.app.mall")
#查看手机内存:adb shell cat /proc/meminfo
for i in fp:
if "MemFree" in i:
memfree = re.search(r"\d+\s\w+",i).group()
try:
s= re.search(r"^C\w+", i).group()
except AttributeError:
pass
else:
if s in i:
cached = re.search(r"\d+\s\w+",i).group()
print u"当前剩余内存为:%s MB"%str(float((int(memfree.split()[0])+int(cached.split()[0]))/1024))
正则表达式中 group groups区别的更多相关文章
- 正则表达式中 re.match与re.search的区别
标签: 本文和大家分享的主要是python正则表达式中re.match函数与re.search方法的相关用法及异同点,希望通过本文的分享,能对大家有所帮助. re.match函数 re.match 尝 ...
- 【python】正则表达式-group和group的区别
__author__ = 'paul' import re a = "123abc456" print re.search("([0-9]*)([a-z]*)([0-9] ...
- python正则表达式中的分组 group
维基百科:http://wiki.ubuntu.org.cn/Python%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%93%8D%E4%BD%9C ...
- 正则表达式中的exec和match方法的区别
正则表达式中的exec和match方法的区别 字符串的正则方法有:match().replace().search().split() 正则对象的方法有:exec().test() 1.match m ...
- 正则表达式中/i,/g,/ig,/gi,/m的区别和含义
正则表达式中/i,/g,/ig,/gi,/m的区别和含义 /i (忽略大小写)/g (全文查找出现的所有匹配字符)/m (多行查找)/gi(全文查找.忽略大小写)/ig(全文查找.忽略大小写)
- js正则表达式中test,exec,match方法的区别说明
js正则表达式中test,exec,match方法的区别说明 test test 返回 Boolean,查找对应的字符串中是否存在模式.var str = "1a1b1c";var ...
- 【正则表达式】使用正则表达式的group,查找出String中的参数值
需求 指标基本格式: clm.{type}.{hostId}.$metricItem 示例1: // 待匹配表达式:<hostId: 为36位的UUID> summarize(clm.pm ...
- Python: 正则表达式中的group()
正则表达式中,group()用来提出分组截获的字符串,()用来分组 eg:
- * 和 ?在 shell 命令行中与在正则表达式中的区别
Linux 正则表达式 你有没有想过,在 shell 命令行中的 *,?和正则表达式中的*,?是否一样? 自打好多年前接触 DOS,就知道了* 和?这两个通配符(Wildcard),象 dir *.* ...
随机推荐
- logging模块及日志框架
logging模块及日志框架 logging模块 一.导入方式 import logging 二.作用 写日志 三.模块功能 3.1 经常使用 # V1 import logging logging ...
- 简单告诉你-"border:0"与"border:none"的区别
"border:0"与"border:none"的差异主要体现在性能差异和兼容差异.1.性能差异"border:0"表示把border定义为 ...
- 9.css3动画-2D/3D变形--trasform
transform: None不转换. Translate(x,y)通过设置X轴的值进行移动. translateY(y)通过设置Y轴的值进行移动. Scale(x,y)定义2D缩放. ScaleX( ...
- CentOS7 yum安装配置 +redis主从配置
一.安装必要包 yum install gcc 二.linux下安装 #下载 wget http://download.redis.io/releases/redis-3.0.0.tar.gz tar ...
- Java语言利用Google的Thumbnailator处理图片
导读:在Java中制作高质量的缩略图可能是一项相当困难的任务,或者图片质量高页面加载慢等等原因使需要对图片进行处理,但是又不想写太多的代码太麻烦去处理图片,那么就可以使用Thumbnailator—— ...
- 2019-11-29-dotnet-core-使用-CoreRT-将程序编译为-Native-程序
title author date CreateTime categories dotnet core 使用 CoreRT 将程序编译为 Native 程序 lindexi 2019-11-29 08 ...
- Linux20期学习笔记 Day1
Linux就该这么学第一章 1.4重置root管理员密码 放到红帽RHCSA考前辅导视频 源代码安装: 弊端:(好处第二章讲解) 1.难度高,安装困难 2.自己解决依赖关系(暂时不说) 新技术:RP ...
- SpringBootMVC02——Spring Data JPA的使用&JSP的使用
Spring Data JPA的使用 实体层 package com.littlepage.domain; import javax.persistence.Entity; import javax. ...
- STM32CubeIDE Debug Configurations
新建完工程并编译后,配置Debug Configurations 此时双击STM32 MCU Debugging,如下图 此时就可以下载调试生成的LED.elf文件了
- ip addr详解
Windows上查看IP地址是ipconfig, Linux上是ifconfig,但是Linux上还有一个命令叫ip addr可以查看IP地址. ip addr : lo: <LOOPBACK, ...