跳到主要内容

请简述C++的regex_search()函数 ?

参考答案:

regex_search() 是 C++ 标准库 <regex> 中的一个函数,用于在字符串中搜索与给定正则表达式匹配的子字符串。如果找到匹配的子字符串,该函数将返回 true,否则返回 false

函数的原型如下:

bool regex_search (const string& s, match_results& mr, const regex& e);
bool regex_search (const char* s, match_results& mr, const regex& e);

其中:

  • s 是要进行搜索的字符串。
  • mr 是一个 match_results 对象,用于存储搜索的结果。如果搜索成功,mr 将包含匹配的子字符串的详细信息,如位置、长度等。
  • e 是要搜索的正则表达式。

此外,regex_search() 还有其他一些重载版本,可以接受额外的参数,如指定搜索的开始位置、指定搜索的标志等。

下面是一个简单的例子,演示了如何使用 regex_search() 函数:

#include <iostream>
#include <regex>
#include <string>

int main() {
    std::string s = "Hello, world!";
    std::regex e ("world");
    std::smatch match;

    if (std::regex_search (s,match,e))
        std::cout << match.str() << '\n';
    else
        std::cout << "Not found\n";

    return 0;
}

在这个例子中,我们在字符串 "Hello, world!" 中搜索与正则表达式 "world" 匹配的子字符串。由于找到了匹配的子字符串,所以程序将输出 "world"。