Hoi,
'k ben weer bezig in C onder linux, nu met wat regex code, opzich werkt dit prima e.d. alleen 'k moet het zo'n 25000 keer doen achter elkaar, het is deze functie die ik gemaakt heb:
Prima code lijkt me (hehe)... 'k was eerst de regfree() vergeten, dat is lullig kan 'k je vertellen
Maar, nu lijkt deze functie goed te werken.. echter, op 25000 keer duur 't zo'n 20 sec.
het is dus enorm traag, en ik wil dit 'snel' hebben.
Weet iemand hier een oplossing voor, het geeft niet als ik iets andere soort regex moet gaan gebruiken. Dit is posix regex.
Weet iemand een oplossing?
'k ben weer bezig in C onder linux, nu met wat regex code, opzich werkt dit prima e.d. alleen 'k moet het zo'n 25000 keer doen achter elkaar, het is deze functie die ik gemaakt heb:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| int RegexMatch(char *string, char *pattern) {
regex_t preg;
int tmp;
tmp = regcomp(&preg,pattern,REG_ICASE );
if (tmp != 0) {
return -1;
}
tmp = regexec(&preg,string,0,0,0);
regfree(&preg);
if (tmp == 0) {
return 1; // match
} else if (tmp == REG_NOMATCH) {
return 0; // no match, no error.
} else {
return -1; // error.
}
} |
Prima code lijkt me (hehe)... 'k was eerst de regfree() vergeten, dat is lullig kan 'k je vertellen
Maar, nu lijkt deze functie goed te werken.. echter, op 25000 keer duur 't zo'n 20 sec.
het is dus enorm traag, en ik wil dit 'snel' hebben.
Weet iemand hier een oplossing voor, het geeft niet als ik iets andere soort regex moet gaan gebruiken. Dit is posix regex.
Weet iemand een oplossing?