c++如何提取两个相同符号之间的子字符串
C++ How to Extract Substring between two same symbols
我是c++编程新手。我需要一些帮助,
我有字符串:----输入:"Name: $$ Enter Your Name2 $$"我想提取$$符号之间的字符串,包括符号:----输出:"$$ Enter Your Name2 $$"
请帮帮我。
正则表达式在这种情况下非常有用。
c++ 11有正则表达式库。
#include <string>
#include <regex>
std::string parse_string(const std::string& str) {
static const std::string REGEX_STR = R"__($$(w|W)*$$)__";
std::regex regex(REGEX_STR);
std::smatch regex_iterator;
if (std::regex_search(str, regex_iterator, regex)) {
return regex_iterator.str();
}
return std::string("");
}
代码可以改进,但它应该是一个好的起点。具体情况需要处理,例如:字符串中有更多的$$*$$
,等等…
注意:R"__($$(w|W)*$$)__";
是一个原始字符串,以使regex更具可读性。
在字符串中搜索分隔符:
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);
}
相关文章:
- 在数字之间插入 + 或 - 符号以使其等于整数
- C ++中无符号位长度类型之间的隐式转换,即uint8_t,uint16_t
- 两个有符号数字之间的距离
- ifstream 尝试读取 9 到 13 之间的无符号字符时非常奇怪的行为
- 在 docker 容器之间传输时缺少 stdlib 符号
- 无符号长整型和无符号 int 之间有什么区别,这 2 种类型应该如何在 c# 中封送?
- 重复符号 --- 定义和声明之间的差异
- 符号和未签名整数表达式之间的比较,以进行循环误差
- C++编译错误(有符号和无符号整数表达式之间的比较)
- 在C 中使用时,D和E符号之间有什么区别
- 数据类型之后或变量名称之前的引用符号之间的差异
- C++符号和Q符号之间不匹配
- 删除字符串 c++ 中 < 和 > 符号之间的单词
- C++:从两个符号之间提取字符串
- 当分配函数指针时,这两种符号之间有什么区别
- 提取符号之间的字符串
- SFINAE有符号和无符号之间的区别
- 有符号和无符号之间的减法,然后除法
- c++中有符号和无符号之间的转换
- c++如何提取两个相同符号之间的子字符串