#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 = 4; //5;
const char *str_request = " <font size=-1><a href=mailto:mrnours@citeweb.net>_ MR NOURS _</a></font> ";
const char *str_regex = "([a-zA-Z0-9][a-zA-Z0-9_.]+@[a-zA-Z0-9_]+\\.(com|net|[a-zA-Z]{2}))([^a-zA-Z]|$)";
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)
{
int start = pmatch[1].rm_so; // <- Changed from 0 to 1
int end = pmatch[1].rm_eo; // <- Changed from 0 to 1
printf("%d - %d\n\"%.*s\"", start
, end
, pmatch
[1].
rm_eo - pmatch
[1].
rm_so, &str_request
[pmatch
[1].
rm_so]); }
else if (match == REG_NOMATCH)
{
}
}
puts ("\nPress any key\n"); return (EXIT_SUCCESS);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHJlZ2V4Lmg+CgppbnQgbWFpbiAodm9pZCkKewogIGludCBtYXRjaDsKICBpbnQgZXJyOwogIHJlZ2V4X3QgcHJlZzsKICByZWdtYXRjaF90IHBtYXRjaFs1XTsKICBzaXplX3Qgbm1hdGNoID0gNDsgLy81OwogIGNvbnN0IGNoYXIgKnN0cl9yZXF1ZXN0ID0gIiAgICAgICAgIDxmb250IHNpemU9LTE+PGEgaHJlZj1tYWlsdG86bXJub3Vyc0BjaXRld2ViLm5ldD5fIE1SIE5PVVJTIF88L2E+PC9mb250PiAgICAgICAgICAiOwoKIGNvbnN0IGNoYXIgKnN0cl9yZWdleCA9ICIoW2EtekEtWjAtOV1bYS16QS1aMC05Xy5dK0BbYS16QS1aMC05X10rXFwuKGNvbXxuZXR8W2EtekEtWl17Mn0pKShbXmEtekEtWl18JCkiOwoKICBlcnIgPSByZWdjb21wKCZwcmVnLCBzdHJfcmVnZXgsIFJFR19FWFRFTkRFRCk7CiAgaWYgKGVyciA9PSAwKQogICAgewogICAgICBtYXRjaCA9IHJlZ2V4ZWMoJnByZWcsIHN0cl9yZXF1ZXN0LCBubWF0Y2gsIHBtYXRjaCwgMCk7CiAgICAgIG5tYXRjaCA9IHByZWcucmVfbnN1YjsKICAgICAgcmVnZnJlZSgmcHJlZyk7CiAgICAgIGlmIChtYXRjaCA9PSAwKQogICAgICAgIHsKICAgICAgICAgIHByaW50ZiAoIm1hdGNoXG4iKTsKICAgICAgICAgIGludCBzdGFydCA9IHBtYXRjaFsxXS5ybV9zbzsgLy8gPC0gQ2hhbmdlZCBmcm9tIDAgdG8gMQogICAgICAgICAgaW50IGVuZCAgPSBwbWF0Y2hbMV0ucm1fZW87IC8vIDwtIENoYW5nZWQgZnJvbSAwIHRvIDEKICAgICAgICAgIHByaW50ZigiJWQgLSAlZFxuXCIlLipzXCIiLCBzdGFydCwgZW5kLCBwbWF0Y2hbMV0ucm1fZW8gLSBwbWF0Y2hbMV0ucm1fc28sICZzdHJfcmVxdWVzdFtwbWF0Y2hbMV0ucm1fc29dKTsKICAgICAgICB9CiAgICAgIGVsc2UgaWYgKG1hdGNoID09IFJFR19OT01BVENIKQogICAgICAgIHsKICAgICAgICAgIHByaW50ZigidW5tYXRjaFxuIik7CiAgICAgICAgfQogICAgfQogIHB1dHMgKCJcblByZXNzIGFueSBrZXlcbiIpOwogIGdldGNoYXIgKCk7CiAgcmV0dXJuIChFWElUX1NVQ0NFU1MpOwogfQ==