#include <sys/types.h>
#include <regex.h>
#include <stdio.h>
int main(int argc, char *argv[]){ regex_t regex;
int reti;
char msgbuf[100];
/* Compile regular expression */
reti = regcomp(®ex, "^[[:xdigit:]]\\{2\\}$", 0);
if( reti
){ fprintf(stderr
, "Could not compile regex\n"); return(1); }
/* Execute regular expression */
reti = regexec(®ex, "ab", 0, NULL, 0);
if( !reti ){
}
else if( reti == REG_NOMATCH ){
}
else{
regerror(reti, ®ex, msgbuf, sizeof(msgbuf));
fprintf(stderr
, "Regex match failed: %s\n", msgbuf
); return 1;
}
/* Free compiled regular expression if you want to use the regex_t again */
regfree(®ex);
return 0;
}
ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICAjaW5jbHVkZSA8cmVnZXguaD4KICAjaW5jbHVkZSA8c3RkaW8uaD4KCgogICBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKXsgcmVnZXhfdCByZWdleDsKICAgICAgICBpbnQgcmV0aTsKICAgICAgICBjaGFyIG1zZ2J1ZlsxMDBdOwoKICAgICAgICAvKiBDb21waWxlIHJlZ3VsYXIgZXhwcmVzc2lvbiAqLwogICAgICAgIHJldGkgPSByZWdjb21wKCZyZWdleCwgIl5bWzp4ZGlnaXQ6XV1cXHsyXFx9JCIsIDApOwogICAgICAgIGlmKCByZXRpICl7IGZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90IGNvbXBpbGUgcmVnZXhcbiIpOyByZXR1cm4oMSk7IH0KCiAgICAgICAgLyogRXhlY3V0ZSByZWd1bGFyIGV4cHJlc3Npb24gKi8KICAgICAgICByZXRpID0gcmVnZXhlYygmcmVnZXgsICJhYiIsIDAsIE5VTEwsIDApOwogICAgICAgIGlmKCAhcmV0aSApewogICAgICAgICAgICAgICAgcHV0cygiTWF0Y2giKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggcmV0aSA9PSBSRUdfTk9NQVRDSCApewogICAgICAgICAgICAgICAgcHV0cygiTm8gbWF0Y2giKTsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgIHJlZ2Vycm9yKHJldGksICZyZWdleCwgbXNnYnVmLCBzaXplb2YobXNnYnVmKSk7CiAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlJlZ2V4IG1hdGNoIGZhaWxlZDogJXNcbiIsIG1zZ2J1Zik7CiAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICB9CgogICAgICAgLyogRnJlZSBjb21waWxlZCByZWd1bGFyIGV4cHJlc3Npb24gaWYgeW91IHdhbnQgdG8gdXNlIHRoZSByZWdleF90IGFnYWluICovCiAgICAgICAgcmVnZnJlZSgmcmVnZXgpOwoKICAgICAgICByZXR1cm4gMDsKfQ==