regex库中提取括号内字符串的方法
时间: 2023-08-23 13:05:59 浏览: 75
你可以使用 C++ 标准库中的正则表达式库 `regex` 来提取括号内的字符串,具体实现方法如下:
```c++
#include <iostream>
#include <regex>
#include <string>
using namespace std;
int main() {
string s = "Hello (world)!";
regex pattern("\\((.*)\\)"); // 定义正则表达式
smatch match; // 定义匹配结果对象
regex_search(s, match, pattern); // 执行正则表达式匹配
string result = match[1].str(); // 提取匹配结果
cout << result << endl; // 输出结果
return 0;
}
```
这个程序会输出 `world`,也就是 `(world)` 中的内容。其中,正则表达式 `\\((.*)\\)` 匹配包含在一对括号中的任意字符,这对括号需要使用 `\\(` 和 `\\)` 来转义,否则会被当作正则表达式中的原始括号进行解析。`smatch` 类型的 `match` 对象用于存储匹配结果,其中 `match[1]` 表示匹配到的第一个括号内的字符串,使用 `str()` 函数可以将其转换为字符串类型。`regex_search()` 函数用于在字符串中搜索满足正则表达式的子串,并存储在 `match` 对象中。