c++ string split function
#include <string>
#include <vector>
#include <regex>
struct SplitListItem
{
	std::string key;
	std::string value;
};
std::vector<SplitListItem> splitString(std::string origenString, std::regex pattern)
{
	std::smatch result;
	std::string::const_iterator iterStart = origenString.begin();
	std::string::const_iterator iterEnd = origenString.end();
	std::vector<std::string> splitList = {};
	std::vector<std::string> splitKeys = {};
	std::vector<SplitListItem> resultSplitList = {};
	while (regex_search(iterStart, iterEnd, result, pattern))
	{
		splitList.emplace_back(iterStart, result[0].first);
		splitKeys.push_back(result[0].str());
		iterStart = result[0].second;
	}
	splitList.emplace_back(iterStart, iterEnd);
	for (size_t i = 0; i < splitList.size(); i++)
	{
		resultSplitList.push_back(SplitListItem{ i > 0 ? splitKeys[i - 1] : "",  splitList[i] });
	}
	return resultSplitList;
}
std::vector<SplitListItem>  r = splitString("game.exe+009E820C+4+8-4", (std::regex)"[+-]");
for (size_t i = 0; i < r.size(); i++)
{
    std::cout << r[i].key << std::endl;
    std::cout << r[i].value << std::endl;
}
vector<string> string_split(string str, regex reg)
{
	smatch m;
	string::const_iterator iterStart = str.begin();
	string::const_iterator iterEnd = str.end();
	vector<string> resultSplitList = {};
	while (regex_search(iterStart, iterEnd, m, reg))
	{
		resultSplitList.emplace_back(iterStart, m[0].first);
		iterStart = m[0].second;
	}
	resultSplitList.emplace_back(iterStart, iterEnd);
	return resultSplitList;
}
string_split(str, regex("\\s+"));
												
											c++ string split function的更多相关文章
- Lua 自定义函数string.split
		
function string.split(str, delimiter) if str==nil or str=='' or delimiter==nil then return ...
 - Lua自己实现string.split功能
		
local function split(str, d) --str是需要查分的对象 d是分界符 local lst = { } local n = string.len(str)--长度 local ...
 - delphi string.split 按照任意字符串分割语句
		
delphi string.split 按照任意字符串分割语句 1.就是把一个指定的字符串用指定的分割符号分割成多个子串,放入一个 TStringList 中 function ExtractStri ...
 - 字符串切分 String.Split 和 Regex.Split
		
当切割字符串的是单个字符时可使用String.Split string strSample="ProductID:20150215,Categroy:Food,Price:15.00&quo ...
 - Java里String.split需要注意的用法
		
我们常常用String的split()方法去分割字符串,有两个地方值得注意: 1. 当分隔符是句号时("."),需要转义: 由于String.split是基于正则表达式来分割字符串 ...
 - Java String.split()小点
		
java String.split(); 别的不说,单说其中一个问题,这个函数去切分空字符串时,得到的结果: public static void main(String[] args) {// St ...
 - C# string.Split对于换行符的分隔正确用法
		
C# string.Split对于换行符的分隔正确用法 tmpCase "11117144-8c91-4817-9b92-99ec2f9d784a\r\n23D95A26-012C-4332 ...
 - String.split()用法以及特殊分隔符注意,ps:|
		
转载:http://www.cnblogs.com/mingforyou/archive/2013/09/03/3299569.html 在java.lang包中有String.split()方法,返 ...
 - C# String.split()用法小结。String.Split 方法 (String[], StringSplitOptions)
		
split()首先是一个分隔符,它会把字符串按照split(' 字符')里的字符把字符串分割成数组,然后存给一个数组对象. 输出数组对象经常使用foreach或者for循环. 第一种方法 string ...
 
随机推荐
- 浅析 record 使用场景
			
浅析 record 使用场景 Intro 之前我们有介绍过 record 基本知识,record 会实现基于值的类型比较,最近遇到的几个问题觉得用 record 来解决会非常方便,分享一下 基于值的类 ...
 - 6到8个月如何达到三年加得前端经验,对标P7,“慕课网 Java工程师2020”
			
百度网盘链接:https://pan.baidu.com/s/1xshLRO3ru0LAsQQ0pE67Qg 提取码:bh9f 阶段一:课程设计及前端创建脚手架开发 第1周 需求分析和架构设计 ...
 - AS中的协议---IGP、EGP(BGP)
			
查考文档: http://www.360doc.com/content/18/0327/23/11935121_740740341.shtml 自治系统(AS)就是指在网络中处于同一个控制下的路由器和 ...
 - ICMP&&PING
			
ICMP 1.定位:互联网控制报文协议(Internet Control Message Protocol),是TCP/IP协议族的一个子协议,位于网络层.它被IP用于提供许多不同的服务.ICMP是一 ...
 - 设计模式(一)——Java单例模式(代码+源码分析)
			
1)单例模式保证了 系统内存中该类只存在一个对象,节省了系统资源,对于一些需要频繁创建销毁的对象,使用单例模式可以提高系统性能 2)当想实例化一个单例类的时候,必须要记住使用相应的获取对象的方法,而不 ...
 - XV6学习(10)锁
			
在包括XV6的绝大部分操作系统都是多个任务交错执行的.交错的一个原因是多核硬件:多核计算机的多个CPU核心独立执行计算,如XV6的RISC-V处理器.多个CPU核心共享物理内存,XV6利用这种共享来维 ...
 - 使用 with as 优化SQL
			
当我们书写一些结构相对复杂的SQL语句时,可能某个子查询在多个层级多个地方存在重复使用的情况,这个时候我们可以使用 with as 语句将其独立出来,极大提高SQL可读性,简化SQL~ with as ...
 - 2019牛客暑期多校训练营(第二场)E.MAZE(线段树+dp)
			
题意:给你一个n*m的矩阵 你只能向左向右相下走 有两种操作 q次询问 一种是把一个单位翻转(即可走变为不可走 不可走变为可走) 另一种是询问从(1,x) 走到 (n,y)有多少种方案 思路:题目n为 ...
 - Codeforces Round #678 (Div. 2)【ABCD】
			
比赛链接:https://codeforces.com/contest/1436 A. Reorder 题解 模拟一下这个二重循环发现每个位置数最终都只加了一次. 代码 #include <bi ...
 - BZOJ2555 SubString【SAM + Link Cut Tree】
			
BZOJ2555. SubString 要求在线询问一个串在原串中出现的次数,并且可以在原串末尾添加字符串 如果没有修改的话,考虑建出\(parent\)树之后统计每个\(endpos\)节点的\(r ...