Matching the first two words
3 ビュー (過去 30 日間)
古いコメントを表示
Hi,
I have two cell arrays A and B. A(1)= American Express Corporation B contains cells with the following string "AMERICAN EXPRESS CO" the two companies are the same but they won't match unless I ask to match the first two words (with case insensitive matching). How can I find the cells in B that matches A(1) based on the first two words only? Best, Wesso
0 件のコメント
採用された回答
Azzi Abdelmalek
2015 年 6 月 8 日
A={'American Express Corporation','American1 Express Corporation','American2 Express Corporation'}
B={'AMERICAN EXPRESS CO','AMERICAN3 EXPRESS CO', 'AMERICAN1 EXPRESS CO' }
a=regexp(A,'\s+','split')
b=regexp(B,'\s+','split')
a1=upper(cellfun(@(x) [x{1},x{2}],a,'un',0))
b1=upper(cellfun(@(x) [x{1},x{2}],b,'un',0))
Now you can compare your companies
4 件のコメント
Guillaume
2015 年 6 月 8 日
regexp(str, '$[A-Za-z]+', 'match')
will return only the beginning of a string up to the first non-letter.
However, rather than making the string matching algorithm more and more complicated, I would rather focus my efforts in making sure the inputs were properly formatted in the first place.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Characters and Strings についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!