You need to enable JavaScript to run this app. Delphi 正则表达式匹配有效邮箱需支持+字符问题求解
优惠活动
大模型
产品
解决方案
定价
更多

Delphi 正则表达式匹配有效邮箱需支持+字符问题求解

正则存在的问题

你当前使用的正则中,@符号前的用户名匹配规则[_a-zA-Z\d\-\.]+没有包含+字符,因此无法识别带+的合法邮箱(例如user+tag@domain.com这类格式都会匹配失败)。

修复方案

最简修改

直接在@前的字符集里加入+即可满足需求,修改后的代码如下:

TRegEx.Create('[+_a-zA-Z\d\-\.]+@[_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+)+', [roIgnoreCase, roSingleline])

注:+放在字符集[]中不需要转义,直接写入即可生效。

更严谨的可选修改

如果需要避免匹配到+user@domain.com、user++tag@domain.com这类不符合邮箱命名规范的格式,可以将用户名部分的规则调整为禁止+出现在开头、结尾,且不允许连续出现多个+,对应完整代码如下:

TRegEx.Create('[a-zA-Z\d_\-.]+(?:\+[a-zA-Z\d_\-.]+)*@[_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+)+', [roIgnoreCase, roSingleline])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 20:15:01