Discuss / Python / 记录-正则表达式

记录-正则表达式

Topic source
import redef is_valid_email(addr):    '''    >>> is_valid_email('someone@gmail.com')    True    >>> is_valid_email('bill.gates@microsoft.com')    True    >>> is_valid_email('bob#example.com')    False    >>> is_valid_email('mr-bob@example.com')    False    '''    if re.match(r'[0-9a-zA-Z\.]+@[0-9a-zA-Z]+.com$', addr):        return True    else:        return Falsedef name_of_email(addr):    '''    >>> name_of_email('<Tom Paris> tom@voyager.org')    'Tom Paris'    >>> name_of_email('tom@voyager.org')    'tom'    '''    r = re.split(r'@', addr)    if re.match(r'\w*', r[0]):        # 若没有<>符号时        if re.match(r'^[a-zA-Z]+$', r[0]):            return r[0]        # 否则提取出<>中的内容        else:            m = re.match(r'[a-zA-Z\s*]*<([\w\s]*)>[a-zA-Z0-9\s]*', r[0])            return m.group(1)    else:        return Falseif __name__ == '__main__':    import doctest    doctest.testmod(verbose=True)

  • 1

Reply