Esempio n. 1
0
int regex_check(const char *regex_string, const char *word)
{
	int res = 0;
	//
	tRegex *regex = regex_new(regex_string);
	if(!regex)
		return 0;
	res = regex_check_re(regex, word);
	regex_destroy(regex);
	return res;
}
Esempio n. 2
0
int main()
{
	//regex_log_func = printf;

	char *regex_string = "(a+";// "(http://)?(.)*,com(,br)?";//"ab(a)+(ab)*";
	char *word = "ab";//"google,com,br,br";//"abaababab";

	tRegex *regex = regex_new(regex_string);

	printf("regex: %s\n",regex_string);
	printf("word: %s\n",word);
	printf("base: %s\n",regex->base);
	printf("incond: %d\ncond_count: %d\n",regex->incond, regex->cond_count);

	int i;
	for(i=0;i<regex->cond_count;i++)
	{
		tCond *cond = regex->cond_list[i];
		printf("cond #%d:\n",i);
		printf("\tsimbolos_count: %d\n",cond->simbolos_count);
		printf("\tsimbolos: %s\n",cond->simbolos);
		printf("\toperador: %c\n",cond->operador);
		printf("\tbase_index: %d\n",cond->base_index);

	}

	for(i=0;i<regex->cond_count;i++)
		printf("cond #%d start count: %d\n",i,regex->case_list[i]);

	char *try = regex_next_try(regex, strlen(word));
	while(try)
	{
		printf("try: %s - res: ",try);
		printf("%s!\n", (regex_compare(try,word) ? "match!" : "doesn't match!" ) );
		free(try);
		//exit(1);
		try = regex_next_try(regex, strlen(word));
	}
	regex_destroy(regex);

	return 0;
}
Esempio n. 3
0
/*
 * Create new Regex struct for string
 */
static Regex *regex_parse_line(char *s)
{
    Regex *p;
    int err;

    /* New regex entry */
    p = regex_new();

    p->re_s = strsave(s);
    err = regcomp(&p->re_c, p->re_s, REG_EXTENDED|REG_ICASE);
    if(err) {
	fglog("WARNING: error compiling regex %s", p->re_s);
	xfree(p);
	return NULL;
    }

    debug(15, "regex: pattern=%s", p->re_s);
    
    return p;
}