正则表达式C代码不能在我的mac osx上运行

时间:2013-07-16 17:38:19

标签: c regex macos

我正在测试4 Macbook上的以下代码。所有Macbook都是最新的10.8.4 其中3个它工作正常但不在我的Macbook上,我开始疯了。 我不知道该怎么办了。

include <regex.h>

...

regex_t re;
char msgbuf[256]
int reti;  
reti = regcomp( &re, ".*\\.xml", REG_EXTENDED | REG_NOSUB);
if( reti )
   printf("Could not compile regex : %d\n", reti);

reti = regexec (&re, "a.xml", 0, 0, 0) ;
if( !reti )
     puts("Match");
else if( reti == REG_NOMATCH )
     puts("No match");
else{
       regerror(reti, &re, msgbuf, sizeof(msgbuf));
       fprintf(stderr, "Regex match failed: %s\n", msgbuf);
    }

这是输出:

Could not compile regex : 16
Regex match failed: invalid regular expression

我在所有Macbook avec pcre 8.33上都有perl 5.12 我甚至将libpcre *从工作macbook / usr / lib复制到我的/ usr / lib 它不起作用

我重新安装了pcre

我尝试了几个表达式,甚至简单的表达式为“。*”,答案总是:regcomp的无效正则表达式和错误代码:16

有没有人有任何新想法?

1 个答案:

答案 0 :(得分:0)

实际上,我认为我的代码中没有错误。错误是在regex.h的错误链接上。有一次,我编写了Windows 7并且windows没有/usr/include/regex.h目录(概念)所以我在当前工作区中安装了用于windows的pcre软件包和另一个与我不兼容的regex.h文件我的macbook上的库pcre。我清理了我的工作区,一切恢复正常。