测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A52252. 某公司的电子邮箱地址由两部分构成,第一部分由6到12个数字、大小写英文字母或下划线构成,且邮箱的第一个字符必须为大小写英文字母,第二部分为字符串“@dmail.com”。

填空题 困难

题目描述

某公司的电子邮箱地址由两部分构成,第一部分由6到12个数字、大小写英文字母或下划线构成,且邮箱的第一个字符必须为大小写英文字母,第二部分为字符串“@dmail.com”。编写程序,接收用户输入的字符串,判断其是否为此公司合法的电子邮箱地址,合法输出:y,不合法输出:n。

提示:

利用标准库re的功能进行字符串匹配,^可用来匹配字符串开头,$可用来匹配字符串结尾。

注:input()函数中不要增加任何参数等提示信息。

例:

输入: 66uujjk@dmail.com      输出: n

输入: yh78uj_@dmail.com     输出: y

参考答案

# 接收用户输入 email = input() # 定义邮箱第二部分 domain = "@dmail.com" # 检查邮箱是否以指定域名结尾 if not email.endswith(domain): print("n") else: # 提取邮箱第一部分 local_part = email[:-len(domain)] # 检查第一部分长度是否在6-12之间 if len(local_part) < 6 or len(local_part) > 12: print("n") else: # 检查第一个字符是否为字母 first_char = local_part[0] if not first_char.isalpha(): print("n") else: # 检查所有字符是否为数字、字母或下划线 valid = True for char in local_part: if not (char.isalnum() or char == "_"): valid = False break print("y" if valid else "n")

答案解析

import re


def verify_email(email):

   pattern = '^[a-zA-Z][\w]{5,11}@dmail\.com$'

   if re.match(pattern, email) is not None:

       print('y')

   else:

       print('n')


input_email = input()

verify_email(input_email)

上一题 下一题