前提:
发生了一个bug,为了维护数据,先把内存中的数据到处到日志文本,然后整理好修正算法之后,把日志文本里的数据重新分析,导入内存。
正则匹配:
http://langref.org/erlang/pattern-matching 这里讲了很多用法
re:run("one two three", "one (.*) three", [{capture, [1], list}])
这样就能截取感兴趣的部分
另外要注意转义符 比如数字匹配 (\d*) 这里要用 (\\d*) 来匹配一个大的数字
文本解析
{ok, Tokens, _} = erl_scan:string(Str ++ "."),
{ok, Exprs} = erl_parse:parse_exprs(Tokens),
注意那个Str++"." 。。。不然会报错。。。
嗯。。大概就是这样了。。。
另外,把beam文件导出代码
{ok,{_,[{abstract_code,{_,AC}}]}} = beam_lib:chunks(BeamFile,[abstract_code]),
io:fwrite("~s~n", [erl_prettypr:format(erl_syntax:form_list(AC))]).