import re def name_of_email(addr): posfix ='@(\w+).(com|org|cn|net|org.com|edu.com|gov.com|com.cn|gov.cn|edu.cn)$' str1=r'^<(\w+[\s\.]?\w+)>\s\w+[\s\.]?\w+' str2=r'^(\w+)' str3=r'^(\w+)[\s\.]\w+' for s in [str1,str2,str3]: m=re.match(s+posfix,addr) if m: return m.group(1) assert name_of_email('<Tom Paris> tom@voyager.org') == 'Tom Paris' assert name_of_email('tom@voyager.org') == 'tom' assert name_of_email('bill.gates@microsoft.com') == 'bill' assert name_of_email('<Tom Paris> Tom Paris@microsoft.com') == 'Tom Paris' #下面这些也能过吗????? assert name_of_email('<Tom Paris>@voyager.org') == None assert name_of_email('Tom Paris> tom@voyager.org') == None assert name_of_email('bill.gates.andy@microsoft.com') == None assert name_of_email('<bill.gates@microsoft.com') == None print('ok')
Sign in to make a reply
SpringShaw