Binary Erlang BinString匹配
我是Erlang新手,如何从url匹配方法“getage”和“getcity”Binary Erlang BinString匹配,binary,erlang,match,Binary,Erlang,Match,我是Erlang新手,如何从url匹配方法“getage”和“getcity” <<"http://server:port/getage?param=ABC">> <<"http://server:port/getcity?param=ABC">> 提前感谢。这里有一种可能的方法: <<"http://server:port/", Uri/binary>> = <<"http://server:port/g
<<"http://server:port/getage?param=ABC">>
<<"http://server:port/getcity?param=ABC">>
提前感谢。这里有一种可能的方法:
<<"http://server:port/", Uri/binary>> = <<"http://server:port/getage?param=ABC">>,
[Endpoint, _] = binary:split(Uri, <<"?">>),
io:format("~s~n", [Endpoint]).
%= getage
以下是一种可能的方法:
<<"http://server:port/", Uri/binary>> = <<"http://server:port/getage?param=ABC">>,
[Endpoint, _] = binary:split(Uri, <<"?">>),
io:format("~s~n", [Endpoint]).
%= getage
您可以使用此标准,但请注意,它采用的是列表参数,而不是二进制,因此我们首先通过binary\u to\u list/1
将您的URL转换为列表:
1> http_uri:parse(binary_to_list(<<"http://server:12345/getage?param=ABC">>)).
{ok,{http,[],"server",12345,"/getage","?param=ABC"}}
变量Path
现在包含您想要的内容,但是作为字符串而不是二进制文件。如果愿意,您可以使用list_to_binary/1
将其转换回二进制:
4> list_to_binary(Path).
<<"getage">>
4>列出二进制文件(路径)。
您可以使用此标准,但请注意,它采用的是列表参数,而不是二进制,因此我们首先通过二进制列表/1将您的URL转换为列表:
1> http_uri:parse(binary_to_list(<<"http://server:12345/getage?param=ABC">>)).
{ok,{http,[],"server",12345,"/getage","?param=ABC"}}
变量Path
现在包含您想要的内容,但是作为字符串而不是二进制文件。如果愿意,您可以使用list_to_binary/1
将其转换回二进制:
4> list_to_binary(Path).
<<"getage">>
4>列出二进制文件(路径)。