Erlang在字符串中替换子字符串

时间:2017-03-21 14:58:36

标签: string erlang

我想用erlang中的其他文本替换字符串中的出现子字符串。

问题示例:我想用 file_name2 文本替换 file_name1

输入: /用户/家庭/ file_name1 .txt的

输出: /用户/家庭/ file_name2 .txt的

说明回答赞赏!谢谢:))

2 个答案:

答案 0 :(得分:3)

您可以使用re模块。下面的Erlang shell中的示例:

12> re:replace("erlang/merl/Makefile", "Makefile", "README.md", [{return,list}]).
"erlang/merl/README.md"
13> re:replace("erlang/merl/Makefile", "Makefile", "README.md", [{return,binary}]).
<<"erlang/merl/README.md">>
14> {ok, Mp} = re:compile("Makefile").
{ok,{re_pattern,0,0,0,
            <<69,82,67,80,87,0,0,0,0,0,0,0,81,0,0,0,255,255,255,255,
              255,255,...>>}}
15> re:replace("erlang/merl/Makefile", Mp, "README.md", [{return,list}]).
"erlang/merl/README.md"
16>

此外,如果您要与大数据匹配,re2可能有所帮助。它虽然是NIF图书馆。

答案 1 :(得分:2)

如果这是您的具体用例 - 更改文件名 - 您可以执行以下操作:

1> filename:dirname("/user/home/file_name1.txt") ++ "/" ++ "file_name2.txt".
"/user/home/file_name2.txt"
2>