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

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

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.VERBOSE)