#include <stdio.h>
#include <regex.h>
int match(const char *string, const char *pattern) {
regex_t re;
if (regcomp(&re, pattern, REG_EXTENDED|REG_NOSUB) != 0) {
return 0;
}
int status = regexec(&re, string, 0, NULL, 0);
regfree(&re);
if (status != 0) {
return 0;
}
return 1;
}
int main(void) {
const char *reg = "^[a-zA-Z0-9_-]+\\.csv$";
if (!match("test.csv", reg)) {
printf("Not a valid csv file.\n"); } else {
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxyZWdleC5oPgoKaW50IG1hdGNoKGNvbnN0IGNoYXIgKnN0cmluZywgY29uc3QgY2hhciAqcGF0dGVybikgewogICAgcmVnZXhfdCByZTsKCiAgICBpZiAocmVnY29tcCgmcmUsIHBhdHRlcm4sIFJFR19FWFRFTkRFRHxSRUdfTk9TVUIpICE9IDApIHsKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIGludCBzdGF0dXMgPSByZWdleGVjKCZyZSwgc3RyaW5nLCAwLCBOVUxMLCAwKTsKICAgIHJlZ2ZyZWUoJnJlKTsKICAgIGlmIChzdGF0dXMgIT0gMCkgewogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIHJldHVybiAxOwp9CgppbnQgbWFpbih2b2lkKSB7CiAgICBjb25zdCBjaGFyICpyZWcgPSAiXlthLXpBLVowLTlfLV0rXFwuY3N2JCI7CiAgICBpZiAoIW1hdGNoKCJ0ZXN0LmNzdiIsIHJlZykpIHsKICAgICAgICBwcmludGYoIk5vdCBhIHZhbGlkIGNzdiBmaWxlLlxuIik7CiAgICB9IGVsc2UgewogICAgICAgIHByaW50ZigiVmFsaWQgY3N2IGZpbGUuXG4iKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==