python正文(两)

简介:
 在本文中,我读了记录和总结《Python标准库》一本书,本节课文的学习和理解。




事实上,在Python于,使用一些方法这段文字是一回事,尤其是经常使用。在一般情况下,会用String这样的类,应考虑Python个标准类了。

1.3.6 用组解析匹配

match.groups()会依照表达式中与字符串匹配的组的顺序返回一个字符串序列。

使用group()能够得到某个组的匹配。

    #组解析
    text='This is a text -- with punctuation.'
    
    print 'Input text:  ', text
    
    regex=re.compile(r'(\bt\w+)\W+(\w+)')
    
    print 'pattern:  ', regex.pattern
    
    match=regex.search(text)
     
    print 'Entire match: ',match.group(0)
    print 'Word starting with t: ',match.group(1)
    print 'Word after t word: ',match.group(2)

Python对基本分组的语法进行了拓展,添加了命名组(named group)。通过名字来指示组。方便能够更easy的改动模式,而不必同一时候改动使用了该匹配结果的代码。
语法:(?

P<name>pattern)

    #命名组
    print '-'*30
    for pattern in [r'^(?

P<first_word>\w+)', r'(?P<last_word>\w+)\S*$', r'(?

P<t_word>\bt\w+)\W+(?P<other_word>\w+)', r'(?P<ends_with_t>\w+t)\b' ]: regex=re.compile(pattern) match=regex.search(text) print 'Matching "%s"' % pattern print ' ',match.groups() print ' ',match.groupdict() print '\n'


使用groupdict()能够获取一个字典,它将组名映射到匹配的子串。



    #更新后的test_pattern()
    print '-'*30
    def test_pattern(text, patterns=[]):
    """
    Given the source text and a list of patters, 
    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 'pattern %r (%s) \n' %(pattern, desc)
        print '%r' % text
        for match in re.finditer(pattern,text):
            s=match.start()
            e=match.end()
            prefix=' '*(s)
            print '  %s%r%s' % (prefix,text[s:e],' '*(len(text)-e))
            print match.groups()
            if match.groupdict():
                print '%s%s'%(' '*(len(text)-s),match.groupdict())
        print 
    return

    test_pattern(
             'abbaabbba',
             [ (r'a((a*)(b*))','a followed by 0-n a and 0-n b'),]
             )



版权声明:本文博主原创文章,博客,未经同意不得转载。




本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/4890078.html,如需转载请自行联系原作者


相关文章
|
XML JSON 编解码
python接口自动化(十)--post请求四种传送正文方式(详解)
post请求我在python接口自动化(八)--发送post请求的接口(详解)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等。我们要知道post请求四种传送正文方式首先需要先了解一下常见的四种编码方式
535 1
python接口自动化(十)--post请求四种传送正文方式(详解)
|
Python
Python:正文提取第三方库goose
Python:正文提取第三方库goose
249 0
|
Python
python 任意新闻正文提取
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_21158419/article/details/52926595 ...
1286 0
|
4天前
|
数据挖掘 索引 Python
Python数据挖掘编程基础3
字典在数学上是一个映射,类似列表但使用自定义键而非数字索引,键在整个字典中必须唯一。可以通过直接赋值、`dict`函数或`dict.fromkeys`创建字典,并通过键访问元素。集合是一种不重复且无序的数据结构,可通过花括号或`set`函数创建,支持并集、交集、差集和对称差集等运算。
14 9
|
1天前
|
存储 数据处理 开发者
深入浅出:Python编程基础与实战技巧
【9月更文挑战第32天】本文将引导读者从零开始,掌握Python编程语言的核心概念,并通过实际代码示例深入理解。我们将逐步探索变量、数据结构、控制流、函数、类和异常处理等基本知识,并结合实用案例,如数据处理、文件操作和网络请求,提升编程技能。无论您是初学者还是有一定经验的开发者,这篇文章都能帮助您巩固基础,拓展视野。
|
1天前
|
数据采集 机器学习/深度学习 人工智能
Python编程之旅:从基础到精通
【9月更文挑战第32天】本文将带你进入Python的世界,从基础语法到高级特性,再到实战项目,让你全面掌握Python编程技能。无论你是初学者还是有一定基础的开发者,都能在这篇文章中找到适合自己的学习路径和方法。让我们一起踏上Python编程之旅,开启一段充满挑战和乐趣的学习历程吧!
|
4天前
|
存储 开发者 Python
探索Python编程的奥秘
【9月更文挑战第29天】本文将带你走进Python的世界,通过深入浅出的方式,解析Python编程的基本概念和核心特性。我们将一起探讨变量、数据类型、控制结构、函数等基础知识,并通过实际代码示例,让你更好地理解和掌握Python编程。无论你是编程新手,还是有一定基础的开发者,都能在这篇文章中找到新的启示和收获。让我们一起探索Python编程的奥秘,开启编程之旅吧!
|
5天前
|
Python
Python编程的循环结构小示例(二)
Python编程的循环结构小示例(二)
|
4天前
|
算法 Python
Python编程的函数—内置函数
Python编程的函数—内置函数
下一篇
无影云桌面