#include <stdio.h>
#include <stdlib.h>
#include <regex.h>
int verifyPattern(char *pattern) {
regex_t regex;
int reti = regcomp(®ex, "^s/(\\\\.|[^\\\\/]+)+/(\\\\.|[^\\\\/]+)*/g$", REG_EXTENDED);
if (reti) {
fprintf(stderr
, "Could not compile regex\n"); }
reti = regexec(®ex, pattern, 0, NULL, 0);
if (!reti) {
} else if (reti == REG_NOMATCH) {
} else {
}
return 1;
}
int main (void)
{
verifyPattern("s/s/s/g");//Match
verifyPattern("s/s//g");//Match
verifyPattern("s//s/g");//No Match
verifyPattern("s/s\\/s/g");//No match
verifyPattern("s/s\\/s/text/text/text/g"); // No match
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHJlZ2V4Lmg+CgppbnQgdmVyaWZ5UGF0dGVybihjaGFyICpwYXR0ZXJuKSB7CiAgICByZWdleF90IHJlZ2V4OwogICAgaW50IHJldGkgPSByZWdjb21wKCZyZWdleCwgIl5zLyhcXFxcLnxbXlxcXFwvXSspKy8oXFxcXC58W15cXFxcL10rKSovZyQiLCBSRUdfRVhURU5ERUQpOwoKICAgIGlmIChyZXRpKSB7CiAgICAgICAgZnByaW50ZihzdGRlcnIsICJDb3VsZCBub3QgY29tcGlsZSByZWdleFxuIik7CiAgICAgICAgZXhpdCgxKTsKICAgIH0KCiAgICByZXRpID0gcmVnZXhlYygmcmVnZXgsIHBhdHRlcm4sIDAsIE5VTEwsIDApOwogICAgaWYgKCFyZXRpKSB7CiAgICAgICAgcHV0cygiTWF0Y2giKTsKICAgIH0gZWxzZSBpZiAocmV0aSA9PSBSRUdfTk9NQVRDSCkgewogICAgICAgIHB1dHMoIk5vIG1hdGNoIik7CiAgICB9IGVsc2UgewogICAgICAgIHB1dHMoIlJlZ2V4IGVycm9yIik7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KaW50IG1haW4gKHZvaWQpCnsKICAgIHZlcmlmeVBhdHRlcm4oInMvcy9zL2ciKTsvL01hdGNoCiAgICB2ZXJpZnlQYXR0ZXJuKCJzL3MvL2ciKTsvL01hdGNoCiAgICB2ZXJpZnlQYXR0ZXJuKCJzLy9zL2ciKTsvL05vIE1hdGNoCiAgICB2ZXJpZnlQYXR0ZXJuKCJzL3NcXC9zL2ciKTsvL05vIG1hdGNoCiAgICB2ZXJpZnlQYXR0ZXJuKCJzL3NcXC9zL3RleHQvdGV4dC90ZXh0L2ciKTsgLy8gTm8gbWF0Y2gKfQ==