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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/caimouse/article/details/78332557

正则表达式的模式修饰符

(?i)即匹配时不区分大小写。表示匹配时不区分大小写。 (?s)即Singleline(单行模式)。表示更改.的含义,使它与每一个字符匹配(包括换行 符\n)。 (?m)即Multiline(多行...
  • wei_jie_zhang
  • wei_jie_zhang
  • 2016-11-09 14:46:18
  • 912

在python中使用正则表达式查找可嵌套字符串组

Python 使用正则匹配查找可嵌套字符串组 在网上看到一个小需求,需要用正则表达式来处理。原需求如下: 找出文本中包含”因为……所以”的句子,并以两个词为中心对齐输出前后3个字,中间全输出,如果“...
  • Foolishwolf_x
  • Foolishwolf_x
  • 2016-01-23 11:11:17
  • 1557

python里使用正则表达式的重复模式

在前面学习的正则表达式,都是把每一个字符写出来的,但是如果有重复的字符,也需要写出来吗?比如重复1000个字符,这时全写出来就不是很聪明的做法了,那么怎么办呢?可以使用某种规则来生成。如下面的例子:#...
  • caimouse
  • caimouse
  • 2017-10-07 14:14:20
  • 772

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

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

正则表达式中模式修正符作用详解(i、g、m、s、x、e)

正则表达式中常用的模式修正符有i、g、m、s、x、e等。它们之间可以组合搭配使用。 它们的作用如下:  //修正符:i 不区分大小写的匹配;          //如:"/abc/i"可以与abc...
  • onthewaygun
  • onthewaygun
  • 2013-08-16 19:42:08
  • 2022

Python 正则表达式验证注释(含单行和多行)

//[^\r\n]*|/\*.*?\*/ Option: Dot match line break
  • guaguastd
  • guaguastd
  • 2014-09-23 09:46:10
  • 1306

Python正则表达式--无捕获组和命名组

精心设计的 REs 也许会用很多组,既可以捕获感兴趣的子串,又可以分组和结构化 RE 本身。在复杂的 REs 里,追踪组号变得困难。有两个功能可以对这个问题有所帮助。它们也都使用正则表达式扩展的通用语...
  • lwnylslwnyls
  • lwnylslwnyls
  • 2013-05-08 17:01:04
  • 2818

正则表达式:贪婪模式与懒惰模式

一 语法区别       贪婪模式与懒惰模式的语法区别在于重复限定修饰符的后面是否有问号,有的话就是懒惰模式,否则就是贪婪模式。   二 例子   他所说的应该是贪婪量词...
  • chen825919148
  • chen825919148
  • 2014-07-21 16:38:03
  • 1214

正则表达式中模式修正符作用详解(i、g、m、s、x、e)

什么是模式修正符? 1, 模式修正符就是几个字母,我们在每个正则表达式中可以一次使用一个,也可以连续使用多个,每一个具一定的意义。 2, 模式修正符是对整个正则表达式调优使用,也可以说是对正则表达式功...
  • forest_fire
  • forest_fire
  • 2016-03-21 11:17:39
  • 1815

[正则]正则表达式 捕获型括号和非捕获型括号

正则表达式 捕获型括号和非捕获型括号对于括号中的子表达式,正则表达式会将匹配的子表达式进行存储。问题描述import re PATH='/Users/Michael/.../app_stat.sh' ...
  • cn_wk
  • cn_wk
  • 2016-11-23 21:04:00
  • 631
收藏助手
不良信息举报
您举报文章:python里使用正则表达式的嵌套可选模式
举报原因:
原因补充:

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