2014-04-09 63 views
0

我的查詢是string1 = 'Ram is going to school',我的另一個匹配字符串是query_string = Ram school。我如何才能將這兩個單詞匹配到上面的字符串。含義query_string匹配爲string1當且僅當來自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) 

輸出

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

相關問題