![](/img/trans.png)
[英]Python, regular expression matching digits, x,xxx,xxx but not xx,xx,x,
[英]Regular expression in python xxx
import re
email="skoal.com abc@com 123@abx.ty.com2 Manan.5587@gmail.com abc@bhe.com"
print("Email Matches",len(re.findall("[\w._%+-]{1,20}@[\w.-]{2,20}.[A-Za-z]{2-3}",email)))
此代碼應該能夠驗證正確輸入的電子郵件地址,但它沒有這樣做,無法找到錯誤作為新學習者需要幫助
正在學習這個在線代碼似乎是正確的,但我想要的輸出不是我得到的
我總是得到輸出為 0
有幾個問題。
首先使用原始字符串r""
。 如果沒有 r,您將錯誤地轉義值。
其次,在 dot 上匹配時.
,你應該逃避它。 否則將匹配任何字符。
最后[A-Za-z]{2-3}
是不正確的。 你需要做[A-Za-z]{2,3}
# incorrect
"[\w._%+-]{1,20}@[\w.-]{2,20}.[A-Za-z]{2-3}"
# correct
r"[\w._%+-]{1,20}@[\w.-]{2,20}\.[A-Za-z]{2,3}"
例子:
import re
emails = "skoal.com abc@com 123@abx.ty.com2 Manan.5587@gmail.com abc@bhe.com"
regex = r"[\w._%+-]{1,20}@[\w.-]{2,20}\.[A-Za-z]{2,3}"
print("Email Matches:", re.findall(regex, emails))
Email Matches: ['123@abx.ty.com', 'Manan.5587@gmail.com', 'abc@bhe.com']
作為一般性評論,在編寫正則表達式時,從簡單開始,然后逐步提高。 調試時,先測試r"[\\w._%+-]{1,20}"
,然后r"[\\w._%+-]{1,20}@[\\w.-]{2,20}"
等,直到您獲得完整的正則表達式,並驗證您在每次迭代中都符合您的期望。
我正在寫答案,因為我沒有評論權限。 以下工作:
email="skoal.com abc@com 123@abx.ty.com2 Manan.5587@gmail.com abc@bhe.com"
print("Email Matches",len(re.findall("[\w._%+-]{1,20}@[\w.-]{2,20}.[A-Za-z]{2,3}",email)))
注意 {2,3} 而不是 {2-3}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.