我目前使用下面的代碼:如何檢查字符串是否爲電子郵件?
regexp = re.compile(r'[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}', re.IGNORECASE)
email = regexp.findall(stext)
if email:
email = email[0]
但即使stext
包含一些其他的文本以及除了電子郵件,將工作(爲前,some text [email protected] some other text
)。當我想檢查是否stext
包含[email protected]
只有(好的,可能與前導或/和尾隨空格,沒有其他字符)。
PS。我也認爲可能我應該使用mail.is_email_valid
而不是正則表達式,它will allow我支持像.museam
這樣的長域或者像.рф
這樣的本地域。
可以使用'^'和'$'特殊字符分別匹配字符串的開頭和結尾。就像'r'^ [A-Z0-9 ._%+ - ] + @ [A-Z0-9 .-] + \。[A-Z] {2,4} $''會讓你開始。 – jedwards 2013-03-22 19:07:18
http://docs.python.org/2/library/re.html#search-vs-match – 2013-03-22 19:54:25