Binary Erlang BinString匹配

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

我是Erlang新手,如何从url匹配方法“getage”和“getcity”

<<"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>列出二进制文件(路径)。