我想用erlang中的其他文本替换字符串中的出现子字符串。
问题示例:我想用 file_name2 文本替换 file_name1 。
输入: /用户/家庭/ file_name1 .txt的
输出: /用户/家庭/ file_name2 .txt的
说明回答赞赏!谢谢:))
答案 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>