c - Regex C 代码不适用于我的 mac osx

标签 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

有没有人有什么新想法?

最佳答案

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

关于c - Regex C 代码不适用于我的 mac osx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17683398/

相关文章:

检查正确的类型转换

C 错误 : request for member ___ in something not a structure or union

c# - 将字符串与带有 IgnoreCase 的 Regex 或字符串的 ToLower 方法进行比较是否更快?

c - 创建指向链表节点的指针时,malloc 和不使用 malloc 有什么区别?

javascript - 使用 javascript 更改字符串

Apache NiFi 中的 Json 字段匹配

objective-c - CATextLayer 子像素抗锯齿

macos - 如何在 NSTableView 底部添加工具栏?

macos - libiconv.2.dylib Mac OS X 问题

c - 在函数 block 外声明的 C 中的自动存储类变量