前提:
发生了一个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++"." 。。。不然会报错。。。
嗯。。大概就是这样了。。。
{ok,{_,[{abstract_code,AC}}]}} = beam_lib:chunks(BeamFile,[abstract_code]),io:fwrite("~s~n",[erl_prettypr:format(erl_Syntax:form_list(AC))]).
原文链接:https://www.f2er.com/regex/359997.html