Regex 如何替换字符串Erlang中的字符?

Regex 如何替换字符串Erlang中的字符?,regex,erlang,Regex,Erlang,我有一段代码,它获取sessionid,将其设置为字符串,然后创建一个带有key的集合,例如redis中的{{1401873063143916},}。我正在尝试用字母“a”替换会话中的{字符 我试过这个: re:replace(N,"{","a",[global,{return,list}]). 这是一种很好的方法吗?我读到Erlang中的regexp不是一种建议的方法。您的解决方案是有效的,如果您对它感到满意,您应该保留它 在我这方面,我更喜欢列表理解:[case X of${->$a;ux

我有一段代码,它获取sessionid,将其设置为字符串,然后创建一个带有key的集合,例如redis中的
{{1401873063143916},}
。我正在尝试用字母“a”替换会话中的
{
字符

我试过这个:

re:replace(N,"{","a",[global,{return,list}]).

这是一种很好的方法吗?我读到Erlang中的regexp不是一种建议的方法。

您的解决方案是有效的,如果您对它感到满意,您应该保留它

在我这方面,我更喜欢列表理解:
[case X of${->$a;ux->end | | X
这是一种很好的方法吗?我读到Erlang中的regexp不是
建议的做事方式

根据:

2.5谬论:字符串很慢

实际上,如果处理不当,字符串处理可能会很慢。在Erlang中,如果要使用正则表达式,则必须多考虑字符串的使用方式,选择适当的表示形式,并使用re模块而不是过时的regexp模块

因此,要么将re用于字符串,要么:

留下{(使用模式匹配) 假设N是{{1401873063143916},},那么

{{A,B,C},Pid}=N


然后将A、B、C、Pid格式化为字符串。

如果我想删除字符怎么办?我应该使用$\d而不是$A吗?在这种情况下,您可以在列表理解中使用过滤器,例如,如果您想跳过字符{:
[X | | X
re:replace(N,"{","a",[global,{return,list}]).
re:replace(N,"{","a",[global,{return,list}]).