C++;如何提取两个相同符号之间的子字符串 我对C++编程很陌生。我需要一些帮助

C++;如何提取两个相同符号之间的子字符串 我对C++编程很陌生。我需要一些帮助,c++,c++11,C++,C++11,我有字符串: ----输入:“姓名:$$输入您的姓名2$$” 我想提取$$符号之间的字符串,包括符号: ----输出:“$$输入您的姓名2$$” 请帮帮我。在这种情况下非常有用 C++11有一个库 #包括 #包括 std::string parse_string(const std::string&str){ 静态常量std::string REGEX\u STR=R“\uuuuu(\$\$(\w\124;\ w)*\$\$)\uuuuu”; 标准::regex regex(regex_STR)

我有字符串: ----输入:“姓名:$$输入您的姓名2$$” 我想提取$$符号之间的字符串,包括符号: ----输出:“$$输入您的姓名2$$”

请帮帮我。

在这种情况下非常有用

C++11有一个库

#包括
#包括
std::string parse_string(const std::string&str){
静态常量std::string REGEX\u STR=R“\uuuuu(\$\$(\w\124;\ w)*\$\$)\uuuuu”;
标准::regex regex(regex_STR);
std::smatch regex_迭代器;
if(std::regex_搜索(str,regex_迭代器,regex)){
返回regex_iterator.str();
}
返回std::字符串(“”);
}
代码可以改进,但它应该是一个很好的起点。应处理特定情况,例如:字符串中的更多
$$*$$
,等等


注意:

R“\uuuu(\$\$(\w\124;\ w)*\$\$)\uuuu”
是一个用于使正则表达式更具可读性的分隔符。

只需在字符串中搜索分隔符:

std::string parse_string(const std::string& str, const std::string& delim) {
    auto start = str.find(delim);
    if (start == std::string::npos)
        return "";
    auto end = str.find(delim, start + delim.size());
    if (end == std::string::npos)
        return str.substr(start);
    else
        return str.substr(start, end - start + delim.size);
}

欢迎来到StackOverflow。请你展示一下你已经拥有的代码,并解释一下你在代码中还不能解决的问题到底是什么。可能有用。
std::string parse_string(const std::string& str, const std::string& delim) {
    auto start = str.find(delim);
    if (start == std::string::npos)
        return "";
    auto end = str.find(delim, start + delim.size());
    if (end == std::string::npos)
        return str.substr(start);
    else
        return str.substr(start, end - start + delim.size);
}