2830680393 发表于 2020-4-11 11:37:22

正则表达式

编写程序,检测下列电子邮箱地址是否规范。符合规范的输出该邮箱地址,并提示其符合规范;对于不符合规范的邮箱地址,提示其不合规范,并提供whu123@163.com作为参考规范。

email1: abc123@163com;    email2: abc321@123.com;    email3: bdssq@com;

email4: 2233198@acn.cn;   email5: bdad@dsa@qq.com    email6: wss321@222.c.c

永恒的蓝色梦想 发表于 2020-4-11 11:39:53

怎么样是有效的

悠悠2264 发表于 2020-4-11 12:56:39

本帖最后由 悠悠2264 于 2020-4-11 13:50 编辑

判断邮箱内是否有@和.
import re

while True:
    a = input("请输入:")
    result = re.search(".+@.+\..+",a) #.+表示匹配一个或多个字符
    # 合规则返回一个对象给result,不合规则不返回,result就是空的。
    if(result != None):
      print(a + "符合规范")
    else:
      print(a + "不合规范,参考规范:whu123@163.com")
    del result # 删除result,以便下一次循环判断

hrp 发表于 2020-4-11 18:04:56

本帖最后由 hrp 于 2020-4-11 18:54 编辑

姑且认为有效邮箱地址格式为:用户名@xxx.xxx,其中,用户名:以数字或字母开头,以数字或字母结尾,中间可以有或者没有.-_这三个符号之一,那比较粗暴的写法是:

import re

def check(emaddr):
    res = re.match(r'+[\.\-\_]?+\@{1}+\.{1}+$', emaddr)
    if res:
      return True
    else:
      return False

def main():
    while True:
      addr = input('输入邮件地址(q退出):')
      if addr.lower() == 'q':
            break
      elif check(addr):
            print('邮件地址 %s 有效。' %addr)
      else:
            print('邮件地址 %s 无效,有效地址示例:whu123@163.com' %addr)

main()

在手机备忘录里写的,没有测试,如果运行报错请告知{:10_245:}

_2_ 发表于 2020-4-11 19:07:55

hrp 发表于 2020-4-11 18:04
姑且认为有效邮箱地址格式为:用户名@xxx.xxx,其中,用户名:以数字或字母开头,以数字或字母结尾,中间可 ...

大概都是缩进错误,也没别的
页: [1]
查看完整版本: 正则表达式