这是我要匹配的字符串
str=“你好我的世界”;
regex_t reg;
if (regcomp(®, pattern, REG_EXTENDED | REG_ICASE) != 0) {
exit (-1);
}
if (regexec(®, str, 0, NULL, 0) != 0) {
regfree(®);
/* did not match */
}
regfree(®);
}
如果pattern
hello_*
则返回true。但如果模式是hello_*_world
它不是…这是预期的吗?我怎么能配得上呢?
最佳答案
您需要了解regex语法。模式hello_*_world
将匹配“hello”,后跟零个或多个下划线,后跟一个下划线,后跟“world”。
你想要的模式是hello_.*_world
,它是“hello”后跟零个或多个任意字符,然后是“u world”。
模式hello_*
匹配,因为字符串包含一个“hello”,后跟零个或多个下划线。