使用c ++中的特殊格式将字符串拆分为字符串

时间:2016-06-19 21:01:16

标签: c++ string split quotes

我试图像这样分割一个字符串:

" AAAAAAAA" \ 1 \" bbbbbbbbb"

包括引号,以获得aaaaaaa bbbbbbbbb。

我找到了不同的方法来获取字符串的分割,但引号和斜杠的存在会导致很多问题。

例如,如果我使用string.find,我就不能使用string.find(" \ 1 \");

有谁知道如何帮助我?谢谢

1 个答案:

答案 0 :(得分:1)

#include <iostream>
#include <string>
#include <regex>

int main()
{
    // build a test string and display it
    auto str = std::string(R"text("aaaaaaaa"\1\"bbbbbbbbb")text");
    std::cout << "input : " << str << std::endl;

    // build the regex to extract two quoted strings separated by "\1\"

    std::regex re(R"regex("(.*?)"\\1\\"(.*?)")regex");
    std::smatch match;

    // perform the match
    if (std::regex_match(str, match, re))
    {
        // print captured groups on success
        std::cout << "matched : " << match[1] << " and " << match[2] << std::endl;
    }
}

预期结果:

input : "aaaaaaaa"\1\"bbbbbbbbb"
matched : aaaaaaaa and bbbbbbbbb