This question already has answers here:
How to validate an email address using a regular expression?
(73个答案)
3年前关闭。
我今天正在尝试构建一个正则表达式,使其与电子邮件地址匹配。
我制作了一个,但在我想要的所有情况下都不起作用。
我要使用一个正则表达式来匹配所有以点号或仅以.com结尾的2个字符的电子邮件地址。
我希望足够清楚
[email protected]>应该可以工作
[email protected]>应该可以
[email protected]>应该可以
[email protected]>不起作用
aaaaaa @ bbbb。 ->不起作用
这是我的代码:
https://regex101.com/是一个非常好的工具
(73个答案)
3年前关闭。
我今天正在尝试构建一个正则表达式,使其与电子邮件地址匹配。
我制作了一个,但在我想要的所有情况下都不起作用。
我要使用一个正则表达式来匹配所有以点号或仅以.com结尾的2个字符的电子邮件地址。
我希望足够清楚
[email protected]>应该可以工作
[email protected]>应该可以
[email protected]>应该可以
[email protected]>不起作用
aaaaaa @ bbbb。 ->不起作用
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <regex.h>
int main (void)
{
int match;
int err;
regex_t preg;
regmatch_t pmatch[5];
size_t nmatch = 5;
const char *str_request = "[email protected]";
const char *str_regex = "[a-zA-Z0-9][a-zA-Z0-9_.]+@[a-zA-Z0-9_]+.[a-zA-Z0-9_.]+[a-zA-Z0-9]{2}";
err = regcomp(&preg, str_regex, REG_EXTENDED);
if (err == 0)
{
match = regexec(&preg, str_request, nmatch, pmatch, 0);
nmatch = preg.re_nsub;
regfree(&preg);
if (match == 0)
{
printf ("match\n");
int start = pmatch[0].rm_so;
int end = pmatch[0].rm_eo;
printf("%d - %d\n", start, end);
}
else if (match == REG_NOMATCH)
{
printf("unmatch\n");
}
}
puts ("\nPress any key\n");
getchar ();
return (EXIT_SUCCESS);
}
最佳答案
"[a-zA-Z0-9][a-zA-Z0-9_.]+@[a-zA-Z0-9_]+\\.(com|[a-zA-Z]{2})$"
https://regex101.com/是一个非常好的工具
\.
表示垃圾点;(|)
表示替代方案;$
表示行的结尾,因为我们不希望比赛后有一些尾随的字符。09-12 18:18