这是我要匹配的字符串
str=“你好我的世界”;

         regex_t reg;
         if (regcomp(&reg, pattern, REG_EXTENDED | REG_ICASE) != 0) {
             exit (-1);
         }

         if (regexec(&reg, str, 0, NULL, 0) != 0) {
             regfree(&reg);
             /* did not match */
         }

         regfree(&reg);
     }

如果patternhello_*则返回true。但如果模式是hello_*_world它不是…这是预期的吗?
我怎么能配得上呢?

最佳答案

您需要了解regex语法。模式hello_*_world将匹配“hello”,后跟零个或多个下划线,后跟一个下划线,后跟“world”。
你想要的模式是hello_.*_world,它是“hello”后跟零个或多个任意字符,然后是“u world”。
模式hello_*匹配,因为字符串包含一个“hello”,后跟零个或多个下划线。

09-25 20:13