我有以下函数来编译pcre正则表达式:
/**
* common options: PCRE_DOTALL, PCRE_EXTENDED, PCRE_CASELESS, PCRE_MULTILINE
* full options located at: https://man7.org/linux/man-pages/man3/pcre_compile.3.html
*/
pcre* pcre_compile_pattern(const char* pattern, int options)
{
const char *pcre_error;
int error_offset;
pcre *re_compiled = pcre_compile(pattern, options, &pcre_error, &error_offset, NULL);
if (re_compiled == NULL) {
fprintf(stderr, "ERROR: '%s' occurs at pattern position %d\n", pcre_error, error_offset);
}
return re_compiled;
}是否有描述pcre结构的地方?例如,我希望了解它是否包含pattern (作为普通字符串),或者是否必须单独保留模式。我在手册页中看到了很多关于pcre*的参考资料,但是我还没有得到更多关于这个结构的详细信息。
在这里搜索github时,我找到了一个地方,这似乎就是我正在使用的东西:internal.h#L2317。但是,所有东西都是私有的,所以您不能访问结构的一部分,例如直接读取/打印它。
发布于 2022-09-18 22:42:46
是否有描述
pcre结构的地方?
定义接口的包含文件是版本1的pcre.h或版本2的pcre2.h。
就像我们不需要知道stdio的文件结构是如何设计的一样,我们也不需要知道pcre是如何定义的。在我们收到pcre之后,我们也不需要这个模式。
Shawn在评论中指出了在新代码中使用pcre2的重要性。网站上也提到了这一点:最后一个版本为8.45,使用pcre2进行新项目。
pcre2的主要更改是更积极的模式验证。
pcre2的一个演示是可在这里找到。
https://stackoverflow.com/questions/67026668
复制相似问题