什么是最简单(和正确)的转义算法?

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.

等等...

解码过程必须执行反向递归.

但是,我怀疑如果我做得太难而且有一种更简单的方法.有更简单的方法吗?

Sta*_*ked 5

感谢@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)

示例实现。

我自己没有意识到这一点真是愚蠢。