我们已经遵循正则表达式来验证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;
}
Run Code Online (Sandbox Code Playgroud)
但如果我提供"test @ test @ test.com"等电子邮件,电子邮件将被接受.
这个正则表达式有什么问题吗?
提前感谢您的帮助.
谢谢,Mathew Liju