美文网首页每天写500字每天写1000字
python 30:增加正则表达式的可读性,参数re.VERBO

python 30:增加正则表达式的可读性,参数re.VERBO

作者: 金石明镜 | 来源:发表于2019-12-16 18:06 被阅读0次

    可以将正则表达式分多行写出,每一行后面写上注释,这样使复杂正则表达式具有可读性。下面是一个匹配电话号码的例子:

    phoneRegex = re.compile(r'''( (\d{3}|\(\d{3}\))? # area code

    (\s|-|\.)? # separator

    \d{3} # first 3 digits

    (\s|-|\.) # separator

    \d{4} # last 4 digits

    (\s*(ext|x|ext.)\s*\d{2,5})? # extension

    )''',re.VERBOSE)

    注意,后面要加上参数re.VERBOSE。

    第一个参数,正则表达式,写在r'''()'''中的括号中。

    可以按意义,分部分写。一部分写一行,后面加上注释。执行时,注释会被忽略。同时,多余的空白也会被忽略。如果用以前的方式写,则不小心写的空白,可能会改变正则表达式的意义。

    下面看这个正则表达式匹配实例。

    >>> mo=phoneRegex.search('111-123.2345')

    >>> mo.group()

    '111-123.2345'

    >>> mo=phoneRegex.search('(111) 123.2344')

    >>> mo.group()

    '(111) 123.2344'

    >>> mo=phoneRegex.search('(111).123.2344')

    >>> mo.group()

    '(111).123.2344'

    >>> mo=phoneRegex.search('(111).123.2344 ext1234')

    >>> mo.group()

    '(111).123.2344 ext1234'

    >>> mo=phoneRegex.search('(111).123.2344 x1234')

    >>> mo.group()

    '(111).123.2344 x1234'

    >>> mo=phoneRegex.search('(111).123.2344 ext.1234')

    >>> mo.group()

    '(111).123.2344 ext.1234'

    相关文章

      网友评论

        本文标题:python 30:增加正则表达式的可读性,参数re.VERBO

        本文链接:https://www.haomeiwen.com/subject/pvbdnctx.html