Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
pcre的结构信息_C_Regex_Pcre - Fatal编程技术网

pcre的结构信息

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

我有以下函数来编译正则表达式:

是否有描述pcre结构的地方?例如,我想看看它是否包含
模式
(作为一个普通字符串),或者是否必须单独保留该模式。我在手册页中看到了很多对
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;
}