#ifndef REGEX_H #define REGEX_H #define OVECSZ 30 #define REGEX(s) pcre_compile (s, 0, &error_message, &error_offset, NULL) #define MATCH(r,s) pcre_exec(r, NULL, s, strlen(s), 0, 0, ovector, OVECSZ) #define REGEXI(s) pcre_compile (s, PCRE_CASELESS, &error_message, &error_offset, NULL) #define GET_STRING(n, s, dest) len = ovector[2*n+1] - ovector[2*n] + 1;\ dest = malloc(len*sizeof(char)); \ pcre_copy_substring(s, ovector, mc, n, dest, len); #define DECLARE_REGEX_VARS const char* error_message; \ int error_offset; \ int ovector[OVECSZ]; \ int len; \ int mc; \ (void) error_message; \ (void) error_offset; \ (void) ovector; \ (void) len; \ (void) mc; #endif