coding-coworking-club / python-spring-2021

ccClub Python Spring 2021
https://www.ccclub.io/course/2021Spring
23 stars 6 forks source link

[Homework #4] 信箱地址檢查 #492

Closed Hongzhang0404 closed 3 years ago

Hongzhang0404 commented 3 years ago

提交連結

https://judge.ccclub.io/status/65ab9e8fe829b603810fbab77bf2aaa2

程式碼

import re

emails= [s for s in input().split(',')]    
emails_lst= [[str(x) for x in range(2)] for y in range(len(emails))]    
for i in range(len(emails)):
    emails_lst[i][0]= emails[i]

for j in range(len(emails_lst)):
    double_pattern= r'[.+_-]{2}'      #先檢查有沒有符號連續出現2次
    if re.search(double_pattern, emails_lst[j][0]):
        emails_lst[j][1]= False
    else:
        emails_lst[j][1]= True
        mail_pattern= r'^[^.+_-][\w.+-]+@[0-9a-zA-Z]+.([0-9a-zA-Z]+|[0-9a-zA-Z]+.[a-zA-Z]+)$'
        if re.match(mail_pattern, emails_lst[j][0]):        #從首字開始匹配項目
            emails_lst[j][1]= True
        else:
            emails_lst[j][1]= False
ans= [emails_lst[l][1] for l in range(len(emails_lst))]    
print(ans)

錯誤訊息

WA

問題描述

您好,題目測資及其他學員提問的測資都正確,請問有什麼測資或情況是我沒有考慮到的嗎?

waukin commented 3 years ago

你有好幾種情況沒有考慮到

  1. email 包括一個以上 @ 應該要是 False
  2. @前面如果只有一個數字或有英文字母應該要是 True,例如:a@gmail.com
  3. @後面的域名不能只有一個層級,舉個例子,ccclub@gmail 應該要是 False
  4. @前面不能有中文字串,例如: 開心@gmail.com
  5. 域名的層級有三個以上也會是True,例如: ccclub@aa.bb.cc.dd
  6. 帳號不能包含 \, % 符號
  7. 域名之間不能包含其它符號, 例如: ccclub@gm\ail.com 應該要是 False

再麻煩你檢查一下喲!

Hongzhang0404 commented 3 years ago

感謝挑錯,本題已AC