如何使用 STL 拆分字符串? [复制]

Posted

技术标签:

【中文标题】如何使用 STL 拆分字符串? [复制]【英文标题】:How to split a string using STL? [duplicate] 【发布时间】:2015-02-17 12:45:51 【问题描述】:

我尝试用多个分隔符(空格和括号)分割一个字符串,但由于getline(...),我设法用一个分隔符分割一个字符串。

这是我尝试做的一个例子:

hello world(12)

我想把论文作为字符串:

hello
world
(
12
)

有什么帮助吗?

【问题讨论】:

【参考方案1】:

您可以简单地进行匹配。使用下面的正则表达式,然后在必要时将匹配的结果附加到列表中。

[^()\s]+(?=[()])|[^\s()]+|[()]

代码:

Thanks to @Lightness

#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';

DEMO

【讨论】:

以上是关于如何使用 STL 拆分字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何拆分字符串中的两个项目? [复制]

如何使用分隔符数组在 Java 中使用多个分隔符拆分字符串? [复制]

如何将字符串拆分为javascript数组? [复制]

如何拆分字符串但在java中保留分隔符? [复制]

Python - 如何在拆分字符串时忽略双引号中的空格? [复制]

如何拆分()关于多个分隔符的字符串? [复制]