0

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

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

1 回答 1

0

您可以使用POSIX regexPCRE 库

支持两个接口来匹配正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");
        }

此外,您可以替换匹配项。

C 中 POSIX 正则表达式的示例

于 2013-09-27T19:21:46.623 回答