Sta*_*ked 6 algorithm escaping
免责声明:这是一个理论问题,目的是增加我的理解.我知道我总是可以使用像JSON库这样的工具来解决问题.
假设我想创建一个以逗号分隔的值列表,这些值本身可能包含逗号.这些逗号需要先被转义.假设我.用作转义字符然后["a", "b,c"]变成a,b.,c.
但是,如果其中一个值最初包含一个.,序列,那么我们需要在转义逗号之前逃避它们.因此[ "a", "b.,c" ]变得a,b..,c.
但是,如果其中一个值最初包含一个..,序列,那么我们需要在转义逗号之前逃避它们.因此[ "a", "b..,c" ]变得a,b...,c.
但是,如果其中一个值最初包含一个...,序列,那么我们需要在转义逗号之前逃避它们.因此[ "a", "b...,c" ]变得a,b....,c.
等等...
解码过程必须执行反向递归.
但是,我怀疑如果我做得太难而且有一种更简单的方法.有更简单的方法吗?
感谢@mkbeckish的评论,我意识到该算法可以实现为:
// encoding
text.replace(escape, escape + escape);
text.replace(delim , escape + delim);
// decoding
text.replace(escape + delim , delim);
text.replace(escape + escape, escape);
Run Code Online (Sandbox Code Playgroud)
我自己没有意识到这一点真是愚蠢。