zoukankan      html  css  js  c++  java
  • Python瓦匠 —— 正则表达式(六)

    一 不区分大小写的匹配

    通常,正则表达式不区分大小写。

    要让正则表达式区分大小写,可以向re.comppile()传入re.IGNORECASE或re.I作为第二个参数。

    例如:

    >>> import re
    >>> case = re.compile(r'jack',re.I)#忽视大小写。
    >>> mo = case.search('Jack is the best choice!')
    >>> mo.group()
    'Jack'

    二 用sub()方法替换字符串

    正则表达式可以用新的文本替换旧的文本。

    Regex对象的sub()方法有两个参数:一个用于取代发现的字符串,一个是需要匹配的字符串。sub()方法返回替换完成的字符串。

    例如:

    >>> namesRegex = re.compile(r'Agent w+')
    >>> namesRegex.sub('Jack','Agent is a good boy!')#返回新的字符串。
    'Jack a good boy!'

    有时候可能需要用匹配的文本本身作为匹配的字符串。在sub()中的第一个参数中,可以输入1 , 2 , 3...。表示替换中输入分组1,2,3...的文本。

    例如:

    >>> namesRegex = re.compile(r'Agent (w)w+')
    >>> namesRegex.sub(r'1**','Agent Jack is a good boy!')
    'J** is a good boy!'
    >>> 

    三 管理复杂的正则表达式

    当匹配复杂的文本模式,可能需要难以理解的正则表达式。可以向re.compile()传入变量re.VERBOSE作为第二个变量。这样re,compile()会忽略正则表达式中的空白符和注释,书写更加可读的正则表达式。

    nameRegex = re.compile(r''' 正则表达式 ''',re.VERBOSE)

    四 组合使用re.IGNORECASE、re.DOTALL、re.VERBOSE

    re.compile()只能接收一个第二个参数。要想要组合使用它们,可以使用管道字符(|)将变量组合起来,从而绕过这个限制。管道在这里被称为‘按位或’操作符。

    nameRegex = re.compile('Jack',IGNORECASE|re.DOTALL|re.VERBOSE)

  • 相关阅读:
    SSRS_NOTE
    github快速使用指南
    Serving 404s instead of errors solved :)
    如何提高LINQtoSQL延时加载的性能
    SqlServer开发利器—SQL Prompt5
    内核通知链 学习笔记 arm
    Excel报表之js版
    JS修改Table中Td的值。
    什么时候能忙完~
    JS修改Table中Td的值(修改)
  • 原文地址:https://www.cnblogs.com/BeautifulSoup/p/8412879.html
Copyright © 2011-2022 走看看