我尝试拆分带有多个分隔符(空格和括号)的字符串,但我设法做的就是使用getline(...)
分隔一个分隔符。
以下是我尝试做的一个例子:
hello world(12)
我想把这些作为字符串:
hello
world
(
12
)
任何帮助?
答案 0 :(得分:3)
你可以简单地进行匹配。使用以下正则表达式,然后在必要时将匹配的结果附加到列表中。
[^()\s]+(?=[()])|[^\s()]+|[()]
<强>代码:强>
#include <regex>
#include <iostream>
int main()
{
std::string s("hello world(12)");
std::regex r("[^()\\s]+(?=[()])|[^\\s()]+|[()]");
auto it = std::sregex_iterator(s.begin(), s.end(), r);
auto end = std::sregex_iterator();
for ( ; it != end; ++it)
std::cout << it->str() << '\n';
}