C:检测URL中的第三级域

时间:2013-09-27 18:52:30

标签: c regex string search

我正在处理以下问题。我想检查一个有效的URL是否包含某些模式,具体来说,例如,它是否具有第三级域。我需要这样的东西,除了strstr不接受正则表达式,如*(星号)......你能帮忙吗?

if (strstr(url, ".*")) {
      printf("third domain: yes\n");
} else {
      printf("third domain: no\n"); };

1 个答案:

答案 0 :(得分:0)

您可以使用POSIX regexPCRE 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(&regex, url, 0, NULL, 0);
        if( !reti ){
                puts("Match");
        }

此外,您可以替换匹配。

Example of POSIX regex in C