2014-11-18 4 views
0

twiter api를 사용할 때 가져 오는 목록에서 해시 태그를 추출하려고합니다.Erlang, hashtag를 추출하십시오

case extract(<<"entities">>, L) of 
    {found, {TE}} -> 
     {found, Hashtags} = extract(<<"hashtags">>, TE); 
    not_found -> Hashtags = hash_not_found 
    end, 

extract(K, L) -> 
case lists:keyfind(K, 1, L) of 
    {_, M} -> {found, M}; 
    false -> not_found 
end. 

이 나에게 형식의 해시 태그 제공 :

[{[{<<"text">>,<<"London">>},{<<"indices">>,[120,127]}]}] 

내가 런던 어느 것, 해당 밖으로 해시 태그를 추출 할을

나는 해시 태그를 추출하기 위해 이것을 사용 이 경우에. 이 태그는 트윗을 추출 할 때마다 다를 수 있습니다. 모든 아이디어 나 제안을 부탁드립니다.

내가 정말로해야하지 않는 한 이전 코드를 변경하고 싶지 않습니다. Id는 그 목록에서 내가 필요한 것을 추출하는 법을 배우는 것을 선호한다. extract 함수가 무엇인지 추측

답변

0

,이 같은 작업을해야합니다 :

case extract(<<"hashtags">>, TE) of 
    {found, Hashtags} -> 
    case extract(<<"text">>, Hashtags) of 
     {found, HashtagTexts} -> HashtagTexts; 
     not_found -> hash_not_found 
    end; 
    not_found -> hash_not_found 
end 

는 표준 라이브러리도 proplists 모듈을 참조하십시오.

+0

그 코드에서 {found, []}}에 대한 절을 추가 할 수 없다면 작동하지 않습니다. – Erlach

+0

말했듯이, 그것은'extract'가 구현되는 방법에 달려 있습니다. 'not_found'와'{found, []}'의 차이점은 무엇입니까? –

+0

내 코드가 수정되었습니다. 도움이된다면 추출 기능을 추가했습니다. – Erlach