C语言正则表达式匹配Linux绝对路径 - 示例代码
在Linux下,可以使用C语言的正则表达式库regex.h来进行正则匹配。regex.h库提供了regcomp()函数来进行正则表达式的编译,regexec()函数来进行匹配。\n\n下面是一个示例代码,使用regcomp()函数编译正则表达式,然后使用regexec()函数进行匹配。\n\nc\n#include <stdio.h>\n#include <regex.h>\n\nint main() {\n regex_t regex;\n int reti;\n char filepath[] = "/home/user/example.txt";\n char pattern[] = "^/.*$"; // 匹配以/开头的绝对路径\n\n // 编译正则表达式\n reti = regcomp(®ex, pattern, 0);\n if (reti) {\n fprintf(stderr, "Could not compile regex\n");\n return 1;\n }\n\n // 进行匹配\n reti = regexec(®ex, filepath, 0, NULL, 0);\n if (!reti) {\n printf("Match\n");\n } else if (reti == REG_NOMATCH) {\n printf("No match\n");\n } else {\n char error_message[100];\n regerror(reti, ®ex, error_message, sizeof(error_message));\n fprintf(stderr, "Regex match failed: %s\n", error_message);\n return 1;\n }\n\n // 释放正则表达式资源\n regfree(®ex);\n\n return 0;\n}\n\n\n上述代码中,正则表达式^/.*$用来匹配以/开头的绝对路径,regcomp()函数将该正则表达式编译为regex对象,然后使用regexec()函数进行匹配,匹配成功输出Match,匹配失败输出No match。\n\n注意,这里的正则表达式使用的是基础的POSIX正则表达式语法,不同的正则表达式语法可能有所差异。
原文地址: https://www.cveoy.top/t/topic/pVQM 著作权归作者所有。请勿转载和采集!