请简述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"。