我试图像这样分割一个字符串:
" AAAAAAAA" \ 1 \" bbbbbbbbb"
包括引号,以获得aaaaaaa bbbbbbbbb。
我找到了不同的方法来获取字符串的分割,但引号和斜杠的存在会导致很多问题。
例如,如果我使用string.find,我就不能使用string.find(" \ 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