C language > Beginner questions
Regular expression won't compile.
(1/1)
gbr:
I'm trying to match the filename base and the extension of a Windows file path.
I'm using a using a regex that I've used before, from here :
https://web.archive.org/web/20190505200101/http://movingtofreedom.org/2008/04/01/regex-match-filename-base-and-extension/
the regex is (.+?)(\.[^.]*$|$)
--- Code: ---
char * source = "F:\\Pelles C Programs\\test\\test.exe";
char * regexString = "(.+\?)(\\.[^.]*$|$)";
regex_t regexCompiled;
if (regcomp(®exCompiled, regexString, REG_EXTENDED))
{
printf("Could not compile regular expression.\n");
return 1;
};
--- End code ---
But regcomp returns a error.
if I print regexString, it is exactly as I mentioned above.
EDIT : Came across this :
--- Quote ---The *? non-greedy operators is an enhanced non-POSIX feature borrowed from Perl. You get them with REG_ENHANCED.
--- End quote ---
Is that the reason ?
frankie:
As far as I know PellesC regex are based on original Henry Spencer code, that don't supports non-greedy operators (and many other new features).
Navigation
[0] Message Index
Go to full version