Tag: pcre

确定正则表达式是否仅匹配固定长度的字符串

有没有办法确定正则表达式是否只匹配固定长度的字符串? 我的想法是扫描*,+和? 然后,需要一些智能逻辑来寻找{m,n},其中m!= n。 没有必要采取| 运营商考虑在内。 小例子:^ \ d {4}是固定长度的; ^ \ d {4,5}或^ \ d +是可变长度的 我正在使用PCRE。 谢谢。 保罗·普拉特

如何将我的C代码链接到PCRE库? (目前正在抛出链接器错误。)

问题 注意:我最初在一个更大的项目中遇到了这个问题; 所以我把代码减少到你看到的测试用例。 我无法弄清楚如何编译以下测试代码。 具体来说,似乎链接器无法找到PCRE库(请参阅下面的PCRE配置方式)。 尽管显式-L/usr/local/lib -lpcre被传递给链接器(PCRE安装在/usr/local目录结构中)。 我究竟做错了什么? 🙁 控制台输出是: $ make rm -f ./*.o gcc -ansi -Wall -pedantic-errors -I/usr/local/include -g0 -O3 -static -static-libgcc -march=i686 -malign-double -m128bit-long-double -c main.c -o main.o gcc -ansi -Wall -pedantic-errors -L/usr/local/lib -lpcre -g0 -O3 -static -static-libgcc -march=i686 -malign-double -m128bit-long-double main.o -o pcre_test_1_i686 main.o:main.c:(.text+0x100): undefined reference to `pcre_compile2′ main.o:main.c:(.text+0x12e): undefined reference […]

部署使用PCRE库的C app

我写了一个使用PCRE库的C app。 一切都在我自己的电脑上运行。 但是,当我将二进制文件复制到另一台计算机并运行它时,它会出现以下错误: /libexec/ld-elf.so.1:找不到“myapp”所需的共享对象“libpcre.so.0” 我知道我可以通过在目标计算机上安装PCRE lib来使其工作。 但是,我想知道是否有更方便的方法呢? (只是复制一些lib文件?) 我试图复制libpcre.so.0文件,但它没有用。 任何帮助表示赞赏! 谢谢,

pcre匹配C中的所有组

我想使用PCRE C库递归匹配一个组。 例如 pattern = “(\d,)” subject = “5,6,3,2,” OVECCOUNT = 30 pcrePtr = pcre_compile(pattern, 0, &error, &erroffset, NULL); rc = pcre_exec(pcrePtr, NULL, subject, (int)strlen(subject), 0, 0, ovector, OVECCOUNT); rc是-1 .. 如何匹配所有组以使匹配为“5”,“6”,“3”,“2”, 比喻,PHP的preg_match_all解析整个字符串,直到主题结束…

如何使用PCRE获取所有匹配组?

我没有使用C的经验,我需要使用PCRE来获得匹配。 以下是我的源代码示例: int test2() { const char *error; int erroffset; pcre *re; int rc; int i; int ovector[OVECCOUNT]; char *regex = “From:([^@]+)@([^\r]+)”; char str[] = “From:regular.expressions@example.com\r\n”\ “From:exddd@43434.com\r\n”\ “From:7853456@exgem.com\r\n”; re = pcre_compile ( regex, /* the pattern */ 0, /* default options */ &error, /* for error message */ &erroffset, /* for error offset */ 0); […]