#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <regex.h>
int main () {
regex_t regex;
int reti;
char msgbuf[100];
const char *regIp = "^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?\\.){1,3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)?$";
reti = regcomp(®ex, regIp, REG_EXTENDED);
regerror(reti, ®ex, msgbuf, sizeof(msgbuf));
printf("Regex compile: %s.", msgbuf
); reti = regexec(®ex, "192.168.100", 0, NULL, 0);
if (!reti){
} else if (reti == REG_NOMATCH) {
} else {
regerror(reti, ®ex, msgbuf, sizeof(msgbuf));
printf("Regex match failed: %s.", msgbuf
); }
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8cmVnZXguaD4KCmludCBtYWluICgpIHsKCXJlZ2V4X3QgcmVnZXg7CglpbnQgcmV0aTsKCWNoYXIgbXNnYnVmWzEwMF07Cgljb25zdCBjaGFyICpyZWdJcCA9ICJeKDI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldP1xcLil7MSwzfSgyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pPyQiOwoJcmV0aSA9IHJlZ2NvbXAoJnJlZ2V4LCByZWdJcCwgUkVHX0VYVEVOREVEKTsKCXJlZ2Vycm9yKHJldGksICZyZWdleCwgbXNnYnVmLCBzaXplb2YobXNnYnVmKSk7CglwcmludGYoIlJlZ2V4IGNvbXBpbGU6ICVzLiIsIG1zZ2J1Zik7CglyZXRpID0gcmVnZXhlYygmcmVnZXgsICIxOTIuMTY4LjEwMCIsIDAsIE5VTEwsIDApOwoJaWYgKCFyZXRpKXsKCSAgICBwdXRzKCJNQVRDSCEhIik7Cgl9IGVsc2UgaWYgKHJldGkgPT0gUkVHX05PTUFUQ0gpIHsKCSAgICBwdXRzKCJObyBtYXRjaCIpOwoJfSBlbHNlIHsKCSAgICByZWdlcnJvcihyZXRpLCAmcmVnZXgsIG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZikpOwoJICAgIHByaW50ZigiUmVnZXggbWF0Y2ggZmFpbGVkOiAlcy4iLCBtc2didWYpOwoJfQp9