python里使用正则表达式的嵌套可选模式

原创 2017年10月24日 18:02:54
在前面的例子里开始学习组嵌套的模式匹配,然而使用这个嵌套时,如果碰到选择符(|)就要小心一些了,在下面的例子里就演示了两个不同的正则表达式的差别,例子如下:
#python 3.6
#蔡军生 
#http://blog.csdn.net/caimouse/article/details/51749579
#
from re_test_patterns_groups import test_patterns

test_patterns(
    'abbaabbba',
    [(r'a((a+)|(b+))', 'a then seq. of a or seq. of b'),
     (r'a((a|b)+)', 'a then seq. of [ab]')],
)


结果输出如下:
'a((a+)|(b+))' (a then seq. of a or seq. of b)

  'abbaabbba'
  'abb'        ('bb', None, 'bb')
     'aa'      ('a', 'a', None)

'a((a|b)+)' (a then seq. of [ab])

  'abbaabbba'
  'abbaabbba'  ('bbaabbba', 'a')
'a((a+)|(b+))'会先匹配a字符,再匹配b字符;而'a((a|b)+)'会匹配a或b字符,再匹配还是a或b字符。

深入浅出Numpy
http://edu.csdn.net/course/detail/6149 

Python游戏开发入门

你也能动手修改C编译器

纸牌游戏开发

http://edu.csdn.net/course/detail/5538 

五子棋游戏开发

http://edu.csdn.net/course/detail/5487
RPG游戏从入门到精通
http://edu.csdn.net/course/detail/5246
WiX安装工具的使用
http://edu.csdn.net/course/detail/5207
俄罗斯方块游戏开发
http://edu.csdn.net/course/detail/5110
boost库入门基础
http://edu.csdn.net/course/detail/5029
Arduino入门基础
http://edu.csdn.net/course/detail/4931
Unity5.x游戏基础入门
http://edu.csdn.net/course/detail/4810
TensorFlow API攻略
http://edu.csdn.net/course/detail/4495
TensorFlow入门基本教程
http://edu.csdn.net/course/detail/4369
C++标准模板库从入门到精通 
http://edu.csdn.net/course/detail/3324
跟老菜鸟学C++
http://edu.csdn.net/course/detail/2901
跟老菜鸟学python
http://edu.csdn.net/course/detail/2592
在VC2015里学会使用tinyxml库
http://edu.csdn.net/course/detail/2590
在Windows下SVN的版本管理与实战 
http://edu.csdn.net/course/detail/2579
Visual Studio 2015开发C++程序的基本使用 
http://edu.csdn.net/course/detail/2570
在VC2015里使用protobuf协议
http://edu.csdn.net/course/detail/2582
在VC2015里学会使用MySQL数据库
http://edu.csdn.net/course/detail/2672

版权声明:本文为博主原创文章,未经博主允许不得转载。

最全正则表达式汇总—想要的都有了

正则式太难学,而且容易忘记 ,西西是看过很多次,都是一会就全部不记得了滴。很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一...
  • SH_King
  • SH_King
  • 2015年07月24日 14:01
  • 1353

Python 正则表达式里的单行s和多行m模式

原文链接:http://www.lfhacks.com/tech/python-re-single-multiline Python 的re模块内置函数几乎都有一个flags参数,以位运算的...
  • zqxnum1
  • zqxnum1
  • 2016年08月01日 17:33
  • 373

pthon学习之argparse模块解析

1.建立解析器: import argparse parser = argparse.ArgumentParser( description=’This is a PyMOTW sampl...
  • sinat_36897497
  • sinat_36897497
  • 2016年12月02日 01:41
  • 364

Python学习_我该怎么使用字典的嵌套功能

字典可以和列表实现嵌套使用,比如在字典中嵌套列表、在列表中嵌套字典或在字典中嵌套字典...
  • a411178010
  • a411178010
  • 2017年11月16日 14:13
  • 125

Java - 正则表达式的运用(Pattern模式和Matcher匹配)

一、绪论:        在写程序的过程中,有时会需要匹配、查找、替换或者是判断字符串的出现情况,而且有时不能用简单的纯编码方式解决这些问题,这个时候就会想到要正则表达式,无论是Java, PHH,...
  • GarfieldEr007
  • GarfieldEr007
  • 2016年12月19日 22:16
  • 3004

Python中在for循环中嵌套使用if和else语句的技巧

转自:http://www.jb51.net/article/86987.htm for...[if]...构建List (List comprehension) 1.简单的for...[if...
  • dhfttkl123
  • dhfttkl123
  • 2017年01月10日 17:26
  • 1744

Python 使用正则表达式 - 1

正则表达式 python
  • hjh00
  • hjh00
  • 2015年08月19日 16:20
  • 1041

你并不熟悉的Python正则高级用法

学习正则的第一个教程应该去看(http://deerchao.net/tutorials/regex/regex.htm), 学会里面的内容就足够满足大部分的工作需要了。而对于Python来说,就...
  • sinat_36947685
  • sinat_36947685
  • 2016年12月06日 16:44
  • 995

python里使用正则表达式的ASCII模式

目前,基本上都使用python3来开发了,但是有时为了兼容旧的python2的代码,在正则表达式里主要是字符串的表示方式不同了,在python3里是使用Unicode来表示字符串和正则表达式,而在py...
  • caimouse
  • caimouse
  • 2017年11月01日 20:50
  • 924

python里使用正则表达式的非捕获模式

在前面使用了分组的模式来匹配正则表达式,比如'a((a+)|(b+))'的分组功能,就会产生三组值返回,如下:'a((a+)|(b+))' (capturing form)  'abbaabbba' ...
  • caimouse
  • caimouse
  • 2017年10月25日 17:43
  • 1098
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python里使用正则表达式的嵌套可选模式
举报原因:
原因补充:

(最多只允许输入30个字)