请编程判断给定的字符串是否是形式上合法的邮箱。
题目中先给出一个整型数n(1 ≤ n ≤ 30),表示后面有n行字符串需要判断。随后的n行中,每行一个字符串,需要进行合法性判断。对于合法的字符串,应输出“Y”,否则输出“N”,结果中间不用空格。
第一行是正整数数n。从第2行到第n+1行,每行一个字符串,需要判断其合法性
输出格式
由“Y”和“N”组成的一行数据,分别表示第n个数据是合法还是非法
import re
n = int(input())
b=[]
for i in range(n):
email = input().strip()
if re.match(r'^[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)+$', email):
b.append("Y")
else:
b.append("N")
for j in b:
print(j,end='')
想问一下这个代码还有哪里不对吗
正则调整下
实际信箱地址中,@前边可以出现点
^[a-zA-Z0-9_\.-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$