Parsing erlang mime到达字段
我试图做到:user@mail.com来自mime邮件消息的字段 我有密码:Parsing erlang mime到达字段,parsing,erlang,mime,Parsing,Erlang,Mime,我试图做到:user@mail.com来自mime邮件消息的字段 我有密码: parse_to(Data) -> List = string:tokens(Data, ":"), Sep1 = lists:map(fun(H) ->string:tokens(H, ":") end, List), io:format(Sep1), Sep2 = lists:filter(fun ([K | _]) -> K == "To" end, Sep1),
parse_to(Data) ->
List = string:tokens(Data, ":"),
Sep1 = lists:map(fun(H) ->string:tokens(H, ":") end, List),
io:format(Sep1),
Sep2 = lists:filter(fun ([K | _]) -> K == "To" end, Sep1),
ListAddress = lists:append(Sep2),
[_ | Tail] = ListAddress,
lists:map(fun(Address) -> string:tokens(Address, ",") end, Tail).
例如,如果我有短信:
我进入了io:format(Sep1)
,没有一切都可以:
但如果我有长消息和附件:-
我进入了io:format(Sep1)
-一切都和一样:
怎么了?为什么短消息正常解析而大消息未解析
当我尝试使用regexp时:
List = binary_to_list(Binary),
re:run(List, "^To: (.)*$", [multiline, {capture, all_but_first, list}]).
我只得到{match,[“m”]}
为什么?
谢谢。试试正则表达式:
1> Data = <<"...">> % Your long message
<<"...">>
2> re:run(Data, <<"^To: (.*)$">>, [multiline, {capture, all_but_first, binary}]).
{match,[<<"shk@shk.dyndns-mail.com">>]}
1>数据=%n您的长消息
2> re:run(数据,[multiline,{capture,除_优先外的所有_,binary}])。
{match,[]}
必须使用点星(.*)外侧的括号,否则只能匹配第一个字符。