我正在使用正則表達式在一個文件中刪除一個電子郵件地址。正則表達式文件刮擦
不幸的是我正則表達式規則不能與此匹配字符串:
" <font size=-1><a href=mailto:[email protected]>_ MR NOURS _</a></font> "
;
我很想找到爲什麼在stackoverflow上的原因,我希望有人能夠解釋我的規則有什麼問題。
這是我的代碼進行測試:
#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 = " <font size=-1><a href=mailto:[email protected]>_ MR NOURS _</a></font> ";
const char *str_regex = "[a-zA-Z0-9][a-zA-Z0-9_.][email protected][a-zA-Z0-9_]+\\.(com|net|[a-zA-Z]{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);
}
從模式中移除'$'。 –
@AeroX:這個問題與html無關 –
@AndreaCorbellini從給出的HTML標記的例子字符串,我懷疑這可能最終是一個XY問題。該OP提到了報廢並提供了一個HTML字符串,這可能意味着他們以後想要抓取網頁。因此,可能的重複將它們指向HTML解析的方向而不是正則表達式。 – AeroX