我的问题可能很容易解决,但今天我有一个“可怜”的日子。 我试图从url中提取主机。函数parse_url来自库(url)。
这是一个功能:
extract_host(X) :-
parse_url("http://hostexample.org/index.html", X).
输出:
X = [protocol(http),host('hostexample.org'),path('/ index.html')]。
如何从中获取 hostexample.org ?
编辑(工作功能):
extract_host(HN) :-
parse_url("http://hostexample.org/index.html", X),
memberchk(host(HN), X).
答案 0 :(得分:2)
要获取主机,您应该使用parse_url/2
调用统一列表中的memberchk/2,因为主机可能是也可能不是它的第二个参数(parse_url/2
的文档没有说明该列表中参数的顺序。)
extract_host(Url, HostName):-
parse_url(Url, LParsed),
memberchk(host(HostName), LParsed).
并查询extract_host("http://hostexample.org/index.html", Host).