python re模块中的 re.compile 函数

import re
re.compile(pattern [, flags])

该函数将某个包含正则表达式的字符串创建为模式对象,使用re.compile()函数进行转换后,re.search(pattern, string)的调用方式就转换为 pattern.search(string)的调用方式,pattern变到外边来,如:

-------- 使用re.compile

'>>> DIGIT_RE = re.compile('\d')
'>>>data = 'bAse730onE4'
'>>>DIGIT_RE.search(data)

-------- 不使用re.compile

'>>>data = 'bAse730onE4'
'>>>re.search('\d',data)

当对某个正则表达式重复使用好多次到时候,可以考虑re.compile函数。

来个脚本实际应用一下:

import re
DIGIT_RE = re.compile('\d')
UPPER_CASE_RE = re.compile('[A-Z]')
LOWER_CASE_RE = re.compile('[a-z]')
def checkio(data):
    """
    验证字符串data长度在10以上,同时包含大写字母、小写字母和数字。
    满足条件返回True,否则返回False。
    """
    if len(data) < 10:
        return False
    if not DIGIT_RE.search(data):
        return False
    if not UPPER_CASE_RE.search(data):
        return False
    if not LOWER_CASE_RE.search(data):
        return False
    return True
if __name__ == '__main__':
    assert checkio('A1213pokl')==False
    assert checkio('bAse730onE4')==True
    assert checkio('asasasasasasasaas')==False
    assert checkio('QWERTYqwerty')==False
    assert checkio('123456123456')==False
    assert checkio('QwErTy911poqqqq')==True
    print('All ok')

你可能感兴趣的:(python re模块中的 re.compile 函数)