2014-04-09 6 views
0

내 검색어는 string1 = 'Ram is going to school'이고 다른 일치하는 문자열은 query_string = Ram school입니다. 이 두 단어 만 위의 문자열과 어떻게 일치시킬 수 있습니까? query_string의 단어가 인 경우에만 query_string의 단어가 모두 string1 인 경우에만 일치합니다.문자열의 여러 단어 일치하기

string1 = 'Ram is going to school'

query_string = Ram school

출력 = 쿼리 문자열이 일치

+0

'string1'은 단어들로 분할되고'query_string' 또한 분리됩니다. 이제 두 단어가 일치 할 때 결과를 반환하는 방법. – user3416063

+0

반환 값은 바이너리일까요? 그렇지 않으면 완전 일치는'1'이고 그렇지 않으면'0'입니까? – Divakar

+0

예! 그것은 바이너리가 될 것입니다. – user3416063

답변

1

코드

string1 = 'Ram is going to school' 
query_string = 'Ram school' 

split1 = unique(regexp(string1,'\s','Split'),'stable'); 
split2 = unique(regexp(query_string,'\s','Split'),'stable'); 

out = nnz(ismember(split1,split2))==numel(split2) 

출력

0123있다
out =  
    1 

편집 query_string = 'Ram school days'out0으로 표시합니다.

확장 1 부 : 당신이 일치 수에 대한 임계 값을하고 싶은 경우 대신, 이것을 사용 -

out = nnz(ismember(split1,split2))>=Threshold 

확장 2 부 : 대소 문자를 구분하지 일치

string1 = 'ram is going to schooL'; 
query_string = 'Ram School'; 

string1c = unique(regexp(string1,'\s','Split'),'stable'); 
query_stringc = unique(regexp(query_string,'\s','Split'),'stable'); 

lstring1c = cellfun(@lower,string1c,'uni',0); 
lquery_stringc = cellfun(@lower,query_stringc,'uni',0); 

out = nnz(ismember(lstring1c,lquery_stringc))==numel(query_stringc) 

출력

out = 

    1 
+0

도움 주셔서 감사합니다. – user3416063