如何在C++中从字符串中提取括号内的内容?
时间: 2024-12-02 09:22:04 浏览: 15
在C++中,你可以使用正则表达式库(如 `<regex>` 或第三方库如 C++ Boost.Regex)来从字符串中提取括号内的内容。这里是一个简单的例子,假设你已经有了一个匹配模式,比如 `"(.*?)"`,它匹配任意非贪婪的字符直到遇到第一个闭合的括号:
```cpp
#include <iostream>
#include <regex>
std::string extractParentheses(const std::string& input) {
std::regex pattern(R"((\[.*?\])|(\(.*?\)))"); // 匹配方括号[]和圆括号()
std::smatch match;
if (std::regex_search(input, match, pattern)) {
return match[1] != "" ? match[1].str() : match[2].str(); // 返回第一组或第二组匹配的内容
} else {
return "";
}
}
int main() {
std::string str = "Hello (world), this is a [test]";
std::cout << "Extracted content: " << extractParentheses(str) << std::endl;
return 0;
}
```
这个函数会返回输入字符串中第一个找到的括号内的内容。如果你需要提取所有括号内的内容,可以稍微修改一下代码以迭代查找。
阅读全文