鱼C论坛

 找回密码
 立即注册
查看: 664|回复: 4

正则表达式

[复制链接]
发表于 2020-4-11 11:37:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
编写程序,检测下列电子邮箱地址是否规范。符合规范的输出该邮箱地址,并提示其符合规范;对于不符合规范的邮箱地址,提示其不合规范,并提供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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-11 11:39:53 | 显示全部楼层
怎么样是有效的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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,以便下一次循环判断
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-11 18:04:56 From FishC Mobile | 显示全部楼层
本帖最后由 hrp 于 2020-4-11 18:54 编辑

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

def check(emaddr):
    res = re.match(r'[a-zA-Z0-9]+[\.\-\_]?[a-zA-Z0-9]+\@{1}[a-zA-Z0-9]+\.{1}[a-zA-Z]+$', 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()
在手机备忘录里写的,没有测试,如果运行报错请告知
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-11 19:07:55 From FishC Mobile | 显示全部楼层
hrp 发表于 2020-4-11 18:04
姑且认为有效邮箱地址格式为:用户名@xxx.xxx,其中,用户名:以数字或字母开头,以数字或字母结尾,中间可 ...

大概都是缩进错误,也没别的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 08:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表