包含在两个特定字符之间的c++子字符串
C++ substring contained between 2 specific characters
在c++中想要提取包含在特定字符之间的字符串中的所有子字符串,例如:
std::string str = "XPOINT:D#{MON 3};S#{1}"
std::vector<std:string> subsplit = my_needed_magic_function(str,"{}");
std::vector<int>::iterator it = subsplit.begin();
for(;it!=subsplit.end(),it++) std::cout<<*it<<endl;
这个调用的结果应该是:
MON 3
1
你可以试试Regex:
#include <iostream>
#include <iterator>
#include <string>
#include <regex>
int main()
{
std::string s = "XPOINT:D#{MON 3};S#{1}.";
std::regex word_regex(R"({(.*?)})");
auto first = std::sregex_iterator(s.begin(), s.end(), word_regex),
last = std::sregex_iterator();;
while (first != last)
std::cout << first++->str() << ' ';
}
打印
{MON 3} {1}
。
相关文章:
- 使用.find函数在c++中查找字符和另一个字符之间的大小
- 查找字符在两个索引之间出现的次数
- 我已经建立了递归关系,它找到了两个字符串之间最长的连续公共字符串,我怎么能跳过其中一个字符串中的一个字符
- 函数签名与调用的函数不匹配,常量字符[]和字符*之间的区别?
- 转换字符时Arduino DUE 和 Arduino UNO 之间的区别
- 在C++事务之间存储大量字符数据的有效方法
- ifstream 尝试读取 9 到 13 之间的无符号字符时非常奇怪的行为
- 相同字符之间的最小距离
- 打印C++中字符出现之间/之后的所有子字符串
- 常量字符 [] 和常量字符*之间的区别
- 如何将字符串拆分为一组 3 个字符,它们之间有空格
- 在结构之间复制字符数据
- 如何获取字符*的实际长度?strlen 和 sizeof(target)/sizeof(target*)之间的区别?
- 在字符串之间插入字符
- 字符* 和 std::字符串和常量字符*之间的转换
- 使用STD :: String和字符数组之间的选择
- 为什么常量字符[]和常量字符*之间的比较不同
- 字符* 和无符号字符* 之间不兼容
- C++20 中的严格别名规则是否允许标准 c++ unicode 字符和下划线类型之间"reinterpret
- 重命名两个目录中的文件名,如果它们之间的某些字符匹配 - 矢量下标超出范围