我正在处理以下问题。我想检查一个有效的 URL 是否包含某些模式,具体来说,例如,它是否具有三级域。我需要这样的东西,除了 strstr 不接受诸如 *(星号)之类的正则表达式......你能帮忙吗?
if (strstr(url, ".*")) {
printf("third domain: yes\n");
} else {
printf("third domain: no\n"); };
您可以使用POSIX regex
或PCRE 库
支持两个接口来匹配正GNU C Library
则表达式。一个是standard POSIX.2 interface
,另一个是什么GNU C Library has had for many years
。
两个接口都在头文件中声明regex.h
。如果定义_POSIX_C_SOURCE
,那么只有POSIX.2 functions, structures, and constants are declared
。
借助这些库函数,您可以检查正则表达式是否匹配给定的字符串。
reti = regexec(®ex, url, 0, NULL, 0);
if( !reti ){
puts("Match");
}
此外,您可以替换匹配项。