pcre的结构信息
我有以下函数来编译正则表达式: 是否有描述pcre结构的地方?例如,我想看看它是否包含pcre的结构信息,c,regex,pcre,C,Regex,Pcre,我有以下函数来编译正则表达式: 是否有描述pcre结构的地方?例如,我想看看它是否包含模式(作为一个普通字符串),或者是否必须单独保留该模式。我在手册页中看到了很多对pcre*的引用,但我还没有真正获得关于该结构的更多详细信息 在搜索github时,我在这里找到了一个地方,看起来它可能就是我正在使用的:。所有内容都是私有的,因此您无法访问结构的一部分,例如直接读取/打印它。您应该在新代码中使用pcre2。它是一个不透明的对象,只能通过库api访问。但是,不需要,在编译模式字符串后,您不需要保留它
模式
(作为一个普通字符串),或者是否必须单独保留该模式。我在手册页中看到了很多对pcre*
的引用,但我还没有真正获得关于该结构的更多详细信息
在搜索github时,我在这里找到了一个地方,看起来它可能就是我正在使用的:。所有内容都是私有的,因此您无法访问结构的一部分,例如直接读取/打印它。您应该在新代码中使用pcre2。它是一个不透明的对象,只能通过库api访问。但是,不需要,在编译模式字符串后,您不需要保留它的副本。@Shawn感谢您指出这一点。我可以从哪里下载
pcre2
库?我的机器似乎有pcre
,但没有pcre2
。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;
}