如何用 C 找到正则表达式中的所有匹配项?

Ale*_*ohr 5 c regex posix

C 的正则表达式库中是否有像 python 中那样的 findall 函数:

re.findall(pattern, input_string)
Run Code Online (Sandbox Code Playgroud)

我有一个包含文件名的字符串,如下所示:字符串中的文件数量"path/to/file1.ics,path/file2.ics"不确定。我想找到所有文件名(包括它们的路径)并将它们放入字符串数组中。

我正在使用 GNUregex.h

R..*_*R.. 4

假设您使用 POSIX regcomp/ regexec,每次调用regexec只会找到字符串中的第一个匹配项。要查找下一个,请使用第一个匹配的结束位置(regmatch_t由 填充的数组的第 0 个条目regexec)作为偏移量,在再次搜索之前应用于该字符串。重复直到没有更多匹配项。如果需要,您可以编写一个函数来执行此操作。