erlang的正则匹配和文本解析

前端之家收集整理的这篇文章主要介绍了erlang的正则匹配和文本解析前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前提:

发生了一个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))]).

原文链接:https://www.f2er.com/regex/359997.html

猜你在找的正则表达式相关文章