#include <sys/types.h>
#include <regex.h>
#include <stdio.h>
int main(int argc, char *argv[]){
regex_t regex;
int reti;
char msgbuf[100];
char inputStr2[100]="12:34:04";
char inputStr[100]="12:34";
/* Compile regular expression */
reti = regcomp(®ex,"^\\(\\(\\([01]?[0-9]|2[0-3]\\):\\)?\\([0-5]?[0-9]\\):\\)?\\([0-5]?[0-9]\\)$"
, 0);
if( reti ){
fprintf(stderr, "Could not compile regex\n");
}
/* Execute regular expression */
printf("%s is the string\n",inputStr);
reti = regexec(®ex, inputStr, 0, NULL, 0);
if( !reti ){
puts("Match");
}
else if( reti == REG_NOMATCH ){
puts("No match");
}
else{
regerror(reti, ®ex, msgbuf, sizeof(msgbuf));
fprintf(stderr, "Regex match failed: %s\n", msgbuf);
}
printf("%s is the string\n",inputStr2);
reti = regexec(®ex, inputStr2, 0, NULL, 0);
if( !reti ){
puts("Match");
}
else if( reti == REG_NOMATCH ){
puts("No match");
}
else{
regerror(reti, ®ex, msgbuf, sizeof(msgbuf));
fprintf(stderr, "Regex match failed: %s\n", msgbuf);
}
/* Free compiled regular expression if you want to use the regex_t again */
regfree(®ex);
return 0;
}
I2luY2x1ZGUgPHN5cy90eXBlcy5oPgojaW5jbHVkZSA8cmVnZXguaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKXsKICAgICAgICByZWdleF90IHJlZ2V4OwogICAgICAgIGludCByZXRpOwogICAgICAgIGNoYXIgbXNnYnVmWzEwMF07CgkJY2hhciBpbnB1dFN0cjJbMTAwXT0iMTI6MzQ6MDQiOwoJCWNoYXIgaW5wdXRTdHJbMTAwXT0iMTI6MzQiOwoKLyogQ29tcGlsZSByZWd1bGFyIGV4cHJlc3Npb24gKi8KICAgICAgICByZXRpID0gcmVnY29tcCgmcmVnZXgsIl5cXChcXChcXChbMDFdP1swLTldfDJbMC0zXVxcKTpcXCk/XFwoWzAtNV0/WzAtOV1cXCk6XFwpP1xcKFswLTVdP1swLTldXFwpJCIKLCAwKTsKICAgICAgICBpZiggcmV0aSApewoJCWZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90IGNvbXBpbGUgcmVnZXhcbiIpOwoJCX0KCi8qIEV4ZWN1dGUgcmVndWxhciBleHByZXNzaW9uICovCiAgICAgICAgICAgcHJpbnRmKCIlcyBpcyB0aGUgc3RyaW5nXG4iLGlucHV0U3RyKTsKICAgICAgICByZXRpID0gcmVnZXhlYygmcmVnZXgsIGlucHV0U3RyLCAwLCBOVUxMLCAwKTsKICAgICAgICBpZiggIXJldGkgKXsKICAgICAgICAgICAgICAgIHB1dHMoIk1hdGNoIik7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoIHJldGkgPT0gUkVHX05PTUFUQ0ggKXsKICAgICAgICAgICAgICAgIHB1dHMoIk5vIG1hdGNoIik7CiAgICAgICAgfQogICAgICAgIGVsc2V7CiAgICAgICAgICAgICAgICByZWdlcnJvcihyZXRpLCAmcmVnZXgsIG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZikpOwogICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJSZWdleCBtYXRjaCBmYWlsZWQ6ICVzXG4iLCBtc2didWYpOwogICAgICAgIH0KICAgICAgICAgcHJpbnRmKCIlcyBpcyB0aGUgc3RyaW5nXG4iLGlucHV0U3RyMik7CiAgICAgICAgcmV0aSA9IHJlZ2V4ZWMoJnJlZ2V4LCBpbnB1dFN0cjIsIDAsIE5VTEwsIDApOwogICAgICAgIGlmKCAhcmV0aSApewogICAgICAgICAgICAgICAgcHV0cygiTWF0Y2giKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggcmV0aSA9PSBSRUdfTk9NQVRDSCApewogICAgICAgICAgICAgICAgcHV0cygiTm8gbWF0Y2giKTsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgIHJlZ2Vycm9yKHJldGksICZyZWdleCwgbXNnYnVmLCBzaXplb2YobXNnYnVmKSk7CiAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlJlZ2V4IG1hdGNoIGZhaWxlZDogJXNcbiIsIG1zZ2J1Zik7CiAgICAgICAgfQovKiBGcmVlIGNvbXBpbGVkIHJlZ3VsYXIgZXhwcmVzc2lvbiBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIHJlZ2V4X3QgYWdhaW4gKi8KCXJlZ2ZyZWUoJnJlZ2V4KTsKCiAgICAgICAgcmV0dXJuIDA7Cn0=