You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python正则实现自定义规则邮箱校验,排除ya.ru/ya.ua指定域名

符合要求的邮箱校验正则及Python实现

正则修改思路

在你提供的基础正则上针对四条规则逐一调整:

  • 规则1(登录名最短6字符):将原登录名部分的+(匹配1次及以上)改为{6,}(匹配至少6次)
  • 规则2(不能以2个数字开头):开头添加负向前瞻(?![0-9]{2}),直接过滤掉前两位都是数字的情况
  • 规则3(禁止ya.ru/ya.ua域名):@符号后添加负向前瞻(?!ya\.(ru|ua)),精准匹配禁用的两个域名
  • 规则4(支持多级域名):原正则的域名匹配逻辑([\w-]+\.)+[\w-]{2,4}本身就支持多级结构,无需额外修改

最终校验正则

r'^(?![0-9]{2})[\w-\.]{6,}@(?!ya\.(ru|ua))([\w-]+\.)+[\w-]{2,4}$'

Python使用示例

import re

def check_email(email: str) -> bool:
    email_pattern = r'^(?![0-9]{2})[\w-\.]{6,}@(?!ya\.(ru|ua))([\w-]+\.)+[\w-]{2,4}$'
    return bool(re.match(email_pattern, email))

# 测试样例
test_cases = [
    "test123@google.com.ua", # 合法:满足所有规则
    "12test@qq.com", # 非法:登录名前两位为数字
    "abc@163.com", # 非法:登录名仅3位,长度不足
    "user001@ya.ru", # 非法:使用禁用域名
    "hello.world@outlook.com" # 合法:满足所有规则
]

for case in test_cases:
    res = "校验通过" if check_email(case) else "校验不通过"
    print(f"{case}: {res}")

内容的提问来源于stack exchange,提问作者kyryl0

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 06:48:04