博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
re 模块 分组特别说明
阅读量:6142 次
发布时间:2019-06-21

本文共 1289 字,大约阅读时间需要 4 分钟。

关于分组优先以及 " | " 的细致练习

from django.test import TestCaseimport 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 res = "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+)')]
 
 

进阶的练习

 

 

 

转载于:https://www.cnblogs.com/shijieli/p/10624062.html

你可能感兴趣的文章
10、程序员和编译器之间的关系
查看>>
前端学习之正则表达式
查看>>
配置 RAILS FOR JRUBY1.7.4
查看>>
AndroidStudio中导入SlidingMenu报错解决方案
查看>>
修改GRUB2背景图片
查看>>
Ajax异步
查看>>
好记性不如烂笔杆-android学习笔记<十六> switcher和gallery
查看>>
JAVA GC
查看>>
codeforce 599B Spongebob and Joke
查看>>
3springboot:springboot配置文件(外部配置加载顺序、自动配置原理,@Conditional)
查看>>
9、Dubbo-配置(4)
查看>>
前端第七天
查看>>
图解SSH原理及两种登录方法
查看>>
[转载] 七龙珠第一部——第058话 魔境圣地
查看>>
【总结整理】JQuery基础学习---样式篇
查看>>
查询个人站点的文章、分类和标签查询
查看>>
基础知识:数字、字符串、列表 的类型及内置方法
查看>>
JSP的隐式对象
查看>>
JS图片跟着鼠标跑效果
查看>>
[SCOI2005][BZOJ 1084]最大子矩阵
查看>>