Pau*_*her 3 erlang full-text-search file variable-assignment
问题:想要将文件内容(大小小于1MB)读入Erlang变量,进行一些文本替换并将修改后的内容写入新文件.我是Erlang的新手,想要使用简单的代码而不进行错误处理(从Erlang shell中使用它).
我试过了:
File = file:read_file("pbd4e53e0.html").
Run Code Online (Sandbox Code Playgroud)
但是在使用时
string:len(File).
Run Code Online (Sandbox Code Playgroud)
我明白了
异常错误:函数长度/ 1中的错误参数在调用string:len/1(string.erl,第66行)时称为length({ok,<<">}).
下一步是做替换:
re:replace(File, "<a href=\'pa", "<a href=\'../pa/pa", [{return, list}]).
Run Code Online (Sandbox Code Playgroud)
问题1:我应该如何将文件读入Erlang变量?
问题2:更换是否正常?
对于第一个问题,file:read_file/1返回一个元组{Status, Result},所以赋值应该像:
{ok, File} = file:read_file("pbd4e53e0.html").
Run Code Online (Sandbox Code Playgroud)
其次,File将是二进制文件,而不是字符串,因此您需要先将其转换为字符串:
Content = unicode:characters_to_list(File).
Run Code Online (Sandbox Code Playgroud)
(您也可以提供编码参数)
然后string:len(Content)将按预期工作.
至于替换部分,将正则表达式与HTML一起使用通常是一个非常糟糕的主意,但从API的角度来看看似乎没问题.
| 归档时间: |
|
| 查看次数: |
2805 次 |
| 最近记录: |