[英]check validity of an input python regex
我想使用 username@websitename.extension 格式檢查輸入,並具有以下屬性:
我的以下代碼無法正常工作。 你能幫我解決這個問題嗎?
def is_email_valid(email):
rex = re.compile("[a-zA-Z0-9_-]+@[a-z]+\\.{3}")
return rex.match(email)
表達式\\.{3}
匹配三個文字點。 大概你想要\\.[az]{3}$
對於主機名部分, [az]
顯然不包含數字; 試試[a-z0-9]
。
在您立即丟棄的正則表達式上進行compile
沒有特別的好處。
def is_email_valid(email):
return re.match(r"[a-zA-Z0-9_-]+@[a-z0-9]+\.[a-z]{3}$", email)
如果你想接受子域(你可能應該),你可以在@
,在[az]{3}$
之前添加一個重復,比如([a-z0-9]+\\.)+
。
對於許多有效的電子郵件地址,您的標准過於嚴格,並且會接受許多無效的電子郵件地址。 一般來說,使用正則表達式來驗證電子郵件地址是一個有缺陷的想法,尤其是當您的有效性標准完全是臨時的時。
無論如何,這會以不同的原因拒絕我的首選、我的備份和我的第三級電子郵件地址。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.