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 ...
随机推荐
- XSS Challenges
平台: http://www.zixem.altervista.org/XSS/ level1: Payload: http://www.zixem.altervista.org/XSS/1.php? ...
- docker安装wnameless/oracle-xe-11g并运行(手写超详细)
前景:没事想玩下linux,想着以后可以部署下自己的web项目上去,然后我就想装个oracle来着...之前都不懂linux来着,只知道公司的项目都是部署在上面,然后从装系统到装完oracle用了近五 ...
- 2019Java查漏补缺(二)
查看了公众号:java之间的整理的集和文章,文章地址 总结和搜索了一下网络知识,总结了一下: 1.String 的hashcode()方法 2.switch总结: 3.如何实现克隆 1.String ...
- ubuntu 通过apt安装jdk
需要先添加ppa sudo add-apt-repository ppa:webupd8team/java sudo apt-get update 安装jdk8 sudo apt-get instal ...
- 修改vue element Transfer 穿梭框里内容区的宽度
<template> <el-transfer v-model="value1" :data="data"></el-transf ...
- windows拿到cmd权限之后常用命令
whoami // 查看当前用户名称 ipconfig // 查看本机ip信息,可加 /all 参数 netstat -ano // 查看端口清况 dir c:\ // 查看目录 typ ...
- PowerDesigner表设计中的P F M分别代表什么意思?
版本 如下图中的P.F.M代表什么意思呢? P即primary,主键的意思 F即foreign key,外键的意思 M即mandatory,强制不可为空的意思
- 明天研究下jpa直接像django一样生成
https://blog.csdn.net/yztezhl/article/details/79390714 自动生成 教程-- https://blog.csdn.net/mxjesse/artic ...
- 数据库连接池性能比对(hikari druid c3p0 dbcp jdbc)
https://blog.csdn.net/qq_31125793/article/details/51241943 背景 对现有的数据库连接池做调研对比,综合性能,可靠性,稳定性,扩展性等因素选出推 ...
- 距离放弃python又近了一大步,而然只是第四天
今天是周末后的第一天,周末四处浪浪浪,所以在周一的时候就要狠狠的复习之前的东西了,之后从第一天的计算机基础开始复习,具体内容请翻阅前三篇随笔,主要是要仔细看看,怕学了后面的忘了前面的,今天引进的第一个 ...