我正在处理以下问题。我想检查一个有效的URL是否包含某些模式,具体来说,例如,它是否具有第三级域。我需要这样的东西,除了strstr不接受正则表达式,如*(星号)......你能帮忙吗?
if (strstr(url, ".*")) {
printf("third domain: yes\n");
} else {
printf("third domain: no\n"); };
答案 0 :(得分:0)
您可以使用POSIX regex
或PCRE libary
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");
}
此外,您可以替换匹配。