Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 字符串合并和拆分算法_String_Algorithm_Redis - Fatal编程技术网

String 字符串合并和拆分算法

String 字符串合并和拆分算法,string,algorithm,redis,String,Algorithm,Redis,我使用redis存储数据,数据是组合的值序列,序列与分隔符:和几个字符串值组合,例如: value1:value2:value3 问题是这些值可能包含:在它们中,我的第一个想法是转义:在值中转义为::,然后组合它们,我可以用一个单独的值拆分它们: 但这并不完美,因为{'abc','aaa:','bbb'}将转义到{'abc','aaa:','bbb}并合并到abc:aaa:::bbb,这是无法解决的。这可能是一个愚蠢的问题,我被卡住了,你会如何解决这个问题,或者有更好的建议吗?我建议在每个字符

我使用redis存储数据,数据是组合的值序列,序列与分隔符:和几个字符串值组合,例如:

value1:value2:value3
问题是这些值可能包含:在它们中,我的第一个想法是转义:在值中转义为::,然后组合它们,我可以用一个单独的值拆分它们:


但这并不完美,因为{'abc','aaa:','bbb'}将转义到{'abc','aaa:','bbb}并合并到abc:aaa:::bbb,这是无法解决的。这可能是一个愚蠢的问题,我被卡住了,你会如何解决这个问题,或者有更好的建议吗?

我建议在每个字符串的开头和结尾插入一个特殊的标识符,然后将它们组合在一起。e、 g:

{'%abc%', '%aaa:%', '%bbb%'}
因此,每当您想要再次拆分它们时,您可以使用分隔符拆分它们,然后按照约定替换前缀和附加值以获得原始字符串


希望有帮助

使用另一个不太可能出现在值中的分隔符。或者使用列表。序列是列表中的一项,如果将每个序列存储为列表,则列表太多@Sergiotulentsev您的拆分方法是否支持正则表达式?我解决了它,我首先将:in值转义为\:并将它们组合起来,然后将序列按?拆分,然后将子字符串中的:unescape \:转义为: