gpt4 book ai didi

c - 如果提供 2 "@",验证电子邮件的正则表达式将失败

转载 作者:太空宇宙 更新时间:2023-11-04 00:33:24 26 4
gpt4 key购买 nike

我们遵循了验证 RFC 2822 标准的正则表达式。

函数如下:

int isValidEmail(const char *email_id)
{
/* Regular expression to validate email */
const char *reg_exp =
"[a-z0-9!#$%&'*+-/=?^_`{|}~]+(\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@([a-z0-9]([a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9]([a-z0-9-]*[a-z0-9])?$";

regex_t preg;

/* Compile the regular expression */
if (regcomp(&preg, reg_exp, REG_EXTENDED|REG_NOSUB|REG_ICASE) != 0)
return FAILURE;

/* Execute the regex, 0 for success */
if (regexec(&preg, email_id, (size_t)0, NULL, 0) != 0)
return FAILURE;

regfree(&preg);

return SUCCESS;

}

但是如果我提供像“test@test@test.com”这样的电子邮件,这些电子邮件就会被接受。

这个正则表达式有什么问题吗?

提前感谢您的帮助。

谢谢,马修·李菊

最佳答案

在正则表达式的开头添加一个^。它匹配行的开头。如果没有 ^,正则表达式将匹配子字符串 test@test.com,因为它是与正则表达式匹配的有效电子邮件 ID。

关于c - 如果提供 2 "@",验证电子邮件的正则表达式将失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3599375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com