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

原创 2017年10月07日 14:14:20
在前面学习的正则表达式,都是把每一个字符写出来的,但是如果有重复的字符,也需要写出来吗?比如重复1000个字符,这时全写出来就不是很聪明的做法了,那么怎么办呢?可以使用某种规则来生成。如下面的例子:
#python 3. 6
#蔡军生 
#http://blog.csdn.net/caimouse/article/details/51749579
#
import re


def test_patterns(text, patterns):
    """Given source text and a list of patterns, look for
    matches for each pattern within the text and print
    them to stdout.
    """
    # Look for each pattern in the text and print the results
    for pattern, desc in patterns:
        print("'{}' ({})\n".format(pattern, desc))
        print("  '{}'".format(text))
        for match in re.finditer(pattern, text):
            s = match.start()
            e = match.end()
            substr = text[s:e]
            n_backslashes = text[:s].count('\\')
            prefix = '.' * (s + n_backslashes)
            print("  {}'{}'".format(prefix, substr))
        print()
    return


if __name__ == '__main__':
    test_patterns('abbaaabbbbaaaaa',
                  [('ab', "'a' followed by 'b'"),
                   ])
结果输出如下:

'ab' ('a' followed by 'b')


  'abbaaabbbbaaaaa'
  'ab'
  .....'ab'

这个例子的代码是方便来测试不同的正则表达式。

接着来测试一下重复的正则表达式:

#python 3. 6
#蔡军生 
#http://blog.csdn.net/caimouse/article/details/51749579
#
from re_test_patterns import test_patterns

test_patterns(
    'abbaabbba',
    [('ab*', '0个或多个b跟在a后面'),
     ('ab+', '1个或多个b跟在a后面'),
     ('ab?', '0个或1个b跟在a后面'),
     ('ab{3}', '只能3个b跟在a后面'),
     ('ab{2,3}', '2个到3个b跟a后面')],
)
结果输出如下:

'ab*' (0个或多个b跟在a后面)


  'abbaabbba'
  'abb'
  ...'a'
  ....'abbb'
  ........'a'


'ab+' (1个或多个b跟在a后面)


  'abbaabbba'
  'abb'
  ....'abbb'


'ab?' (0个或1个b跟在a后面)


  'abbaabbba'
  'ab'
  ...'a'
  ....'ab'
  ........'a'


'ab{3}' (只能3个b跟在a后面)


  'abbaabbba'
  ....'abbb'


'ab{2,3}' (2个到3个b跟a后面)


  'abbaabbba'
  'abb'
  ....'abbb'

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

Python游戏开发入门

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

你也能动手修改C编译器

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

纸牌游戏开发

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



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

相关文章推荐

Python中正则表达式的使用

正则表达式是一种非常强大的工具,是用来对文本(字符串)的匹配,搜索的利器,一门好的语言都不可缺少这一模块,在Python中,re模块就集成了所有正则表达式的功能 关于正则表达式的语法,在这里就不赘述...

python的re模块及正则表达式的使用

不知是因为自己太低端还是其他的什么原因,别人都说的正则表达式非常强大,可是我的意识中正则表达式有用,但总是觉得没有传说中的那么厉害。也有可能是自己没有真正的理解它吧。在python中再次偶遇,那就再来...

python中的正则表达式的compile,match,search,sub的使用

python中的正则表达式的compile,match,search,sub的使用 compile只会从开头哦你匹配,如果不是开头的字符串,那么将不会匹配成功,而search可以匹配任意位置的字符串,...

Python正则表达式的七个使用范例

作为一个概念而言,正则表达式对于Python来说并不是独有的。但是,Python中的正则表达式在实际使用过程中还是有一些细小的差别。 本文是一系列关于Python正则表达式文章的其中一部分。在这...

第11章 使用正则表达式的模式匹配(一)

正则表达式 (regular expression) 是一个描述字符模式的对象。JavaScript 的 RegExp 类表示正则表达式,而 String 和 RegExp 都定义了使用正则表达式进行...

第11章 使用正则表达式的模式匹配(二)

11.2 用于模式匹配的 String 方法 迄今为止,虽然本章已经讨论过了用于创建正则表达式的语法,但是我们还没有检验过这些正则表达式在 JavaScript 代码中如何使用。在这一节中,我们将讨...

使用python删除本地夹里重复的文件

上次的博文主要说了从网上下载图片,于是我把整个笑话网站的图片都拔下来了,但是在拔取的图片中有很多重复的,比如说页面的其他图片、重复发布的图片等等。所以我又找了python的一些方法,写了一个脚本可以删...

Python 正则表达式的使用(re findall finditer match search)- 千月的python linux 系统管理指南学习笔记(13)

Python 使用正则表达式 正则表达式(Regular Expression),正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。在对文本的复杂匹配中起到了非常重要的作用。 Pyt...

Python正则表达式的用法

Python正则表达式的用法 字符串替换 1.替换所有匹配的子串 用newstring替换subject中所有与正则表达式regex匹配的子串 result, number = ...

Python正则表达式的用法

本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例。本文的内容不包括如何编写高效的正则表达式、如何优化正则表达式,这些主题请查看其他教程...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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