re 模块 分组特别说明
关于分组优先以及 " | " 的细致练习
from django.test import TestCase
import re # Create your tests here.
ret = re.findall(r"-?\d+\.\d*|-?\d+", "1-2*(60+(-40.35/5)-(-4*3))")
print(ret) # ['1', '-2', '60', '-40.35', '5', '-4', '3'] ret = re.findall(r"-?\d+\.\d*|(-?\d+)", "1-2*(60+(-40.35/5)-(-4*3))")
print(ret) # ['1', '-2', '60', '', '5', '-4', '3'] ret = re.findall(r"-?\d+|-?\d+\.\d*", "1-2*(60+(-40.35/5)-(-4*3))")
print(ret) # ['1', '-2', '60', '-40', '35', '5', '-4', '3'] ret = re.findall(r"-?\d+|(-?\d+\.\d*)", "1-2*(60+(-40.35/5)-(-4*3))")
print(ret) # ['', '', '', '', '', '', '', ''] ret = re.findall(r"(-?\d+\.\d*)|-?\d+", "1-2*(60+(-40.35/5)-(-4*3))")
print(ret) # ['', '', '', '-40.35', '', '', '']
"|" 的匹配顺序从左向右 , 而且一旦匹配上了就不会匹配后面的那段正则
"()" 是将被匹配的优先显示, 但是匹配不中的内容会被用 "" 空字符串来表示
多个分组的匹配
先按照整体正则匹配, 然后在提取()中,如果有两个分组(), 则以元组形式显示
import re s = "A B C D"
# p1 = re.compile("\w+\s+\w+")
# print(p1.findall(s)) # ['A B', 'C D'] p1 = re.compile("(\w+)\s+\w+")
print(p1.findall(s))
# 第一步 ['A B','C D'] # ['(\w+)\s+\w+','(\w+)\s+\w+']
# 第二步 ['A','C'] # ['(\w+)', '(\w+)'] p1 = re.compile("(\w+)\s+(\w+)")
print(p1.findall(s))
# 第一步 ['A B','C D'] # ['(\w+)\s+(\w+)','(\w+)\s+(\w+)']
# 第二步 [('A','B'),('C','D')] # [('(\w+)','(\w+)'),('(\w+)','(\w+)')]
进阶的练习

re 模块 分组特别说明的更多相关文章
- ThinkPHP 学习笔记 ( 一 ) 项目部署:应用部署方式与模块分组部署方式
/** * ThinkPHP version 3.1.3 */ ThinkPHP ( 官方网站:http://www.thinkphp.cn/ ) 目前最新版本是 3.2.2,它要求 PHP 的版本高 ...
- Thinkphp入门 二 —空操作、空模块、模块分组、前置操作、后置操作、跨模块调用(46)
原文:Thinkphp入门 二 -空操作.空模块.模块分组.前置操作.后置操作.跨模块调用(46) [空操作处理] 看下列图: 实际情况:我们的User控制器没有hello()这个方法 一个对象去访问 ...
- 第 8 章: 模块, 包与分发---Word
第八章: 模块, 包 与 分发 描述: 大型Python程序以模块和包的形式组织.另外,Python标准库中包含大量模块.本章详细介绍模块和包系统.还将提供有关如何安装第三方模块和分发源代码的信息. ...
- Python基础-包与模块
Python基础-包与模块 写在前面 如非特别说明,下文均基于Python3 摘要 为重用以及更好的维护代码,Python使用了模块与包:一个Python文件就是一个模块,包是组织模块的特殊目录(包含 ...
- python基础-包和模块
Python基础-包与模块 写在前面 如非特别说明,下文均基于Python3 摘要 为重用以及更好的维护代码,Python使用了模块与包:一个Python文件就是一个模块,包是组织模块的特殊目录(包含 ...
- JavaScript框架设计(四) 字符串选择器(选择器模块结束)
JavaScript框架设计(四) 字符串选择器(选择器模块结束) 经过前面JavaScript框架设计(三) push兼容性和选择器上下文的铺垫,实现了在某一元素下寻找,现在终于进入了字符串选择器 ...
- 创建支持eclipse的多模块maven项目
通过maven可以创建多个关联模块的项目(Multiple Module Projects).由一个总的模块,下面包含多个子模块(子模块还可以包含子模块). 这种maven功能能支持大型的项目构建,往 ...
- ci获取当前url链接的分组,控制器,方法
public function role() { $ci= &get_instance();//ci控制器超级对象,就是把所有执行的方法打印出来 $directory = substr($ci ...
- phalcon: 官方多模块
目录结构如下 public/index.php: use Phalcon\Mvc\Router; use Phalcon\Tag; use Phalcon\Mvc\Url; use Phalcon\M ...
随机推荐
- Dynamics CRM教程:图表的Top设置及导出修改和导入
关注本人微信和易信公众号: 微软动态CRM专家罗勇,回复144或者20150412可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 上一篇博客制作的图表放在Dashb ...
- C# 反射的例子
通过字符串变量访问控件 string t = "textbox1"; TextBox tb = (TextBox)this.GetType().GetField(t, System ...
- 连接到 PostgreSQL 数据源(SQL Server 导入和导出向导)
本主题向你介绍如何从 SQL Server 导入和导出向导的“选择数据源”页或“选择目标”页连接到 PostgreSQL 数据源. 重要 连接到 PostgreSQL 数据库的详细需求和先决条件不在此 ...
- Win10 - MySQL 10061 错误
Win10 - MySQL 10061 错误 报错内容为: Can't connect to MySQL server on localhost (10061) 参考 : MySQL问题记录--Can ...
- SQLServer之修改DEFAULT约束
使用SSMS数据库管理工具修改DEFAULT约束 1.连接数据库.选择数据表->右键点击->选择设计. 2.在表设计器窗口->选中要修改的数据列->在列属性中找到默认值绑定-& ...
- python 之 查找某目录中最新的文件
记录一下这个方法,感觉很有用!>.< import os def find_newest_file(path_file): lists = os.listdir(path_file) li ...
- Redis操作集合,有序集合
Set操作,Set集合就是不允许重复的列表 sadd(name,values) 1 # name对应的集合中添加元素 scard(name) 1 获取name对应的集合中元素个数 sdiff(keys ...
- Python开发【内置模块篇】os模块
1.当前路径及路径下的文件 os.getcwd():查看当前所在路径. >>> import os >>> os.getcwd() 'E:\\test' >& ...
- How-to: Do Real-Time Log Analytics with Apache Kafka, Cloudera Search, and Hue
Cloudera recently announced formal support for Apache Kafka. This simple use case illustrates how to ...
- netstat Recv-Q和Send-Q
通过netstat -anp可以查看机器的当前连接状态: Active Internet connections (servers and established) Proto Recv-Q Se ...