我需要一些帮助尝试将C包含文件与完整路径匹配,如下所示:
#include <stdio.h> -> stdio.h
#include "monkey/chicken.h" -> monkey/chicken.h
Run Code Online (Sandbox Code Playgroud)
到目前为止,我(改编自我发现的另一个表达式):
^\s*\#include\s+(["'<])([^"'<>/\|\b]+)*([">])
Run Code Online (Sandbox Code Playgroud)
但是,我有点卡在这一点 - 它在第二种情况下不匹配,我不知道如何返回匹配的结果,例如文件路径返回到regcomp().
顺便说一句,我看过regexplib.com,但找不到合适的东西.
编辑:是的我是一个完全正则表达的新手,使用POSIX正则表达式与regmatch_t和朋友...
这会产生更好的结果:
^\s*\#include\s+["<]([^">]+)*[">]
Run Code Online (Sandbox Code Playgroud)
然后,您希望在获得匹配时查看第一个捕获组.
你没有说你正在使用什么语言,你提到的因素regcomp()让我相信你在C中使用POSIX正则表达式库.如果这是正确的,那么你想使用regexec函数并使用nmatch和pmatch参数获取第一个捕获组.