How to get common sub string in cell array string?

조회 수: 8 (최근 30일)
galaxy
galaxy 2020년 3월 17일
댓글: galaxy 2020년 3월 17일
Example:
cell_arr =
3×1 cell array
{'A.A1.A11.A111' }
{'A.A1.A12.A121' }
{'Event_State.Chart.A.A1.A12'}
How to get output = A.A1 ?

채택된 답변

Stephen23
Stephen23 2020년 3월 17일
편집: Stephen23 2020년 3월 17일
1- Download and unzip John D'Errico's FEX submission
2- Modify commonsubstring by replacing every
regexp(..., cellsubstr)
with
regexp(..., regexptranslate('escape',cellsubstr))
3- Call commonsubstrings in a loop, e.g.:
C = {'A.A1.A11.A111','A.A1.A12.A121','Event_State.Chart.A.A1.A12'};
S = C{1};
for k = 2:numel(C)
S = commonsubstring(S,C{k});
end
This returns the longest common substring (your output example is not the longest common substring):
>> S
S = A.A1.A1
  댓글 수: 1
galaxy
galaxy 2020년 3월 17일
Thank you for your anwser.
Your anser is same exactly my code. :))

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Bhaskar R
Bhaskar R 2020년 3월 17일
편집: Bhaskar R 2020년 3월 17일
fund_cell = regexp(cell_arr , 'A.A1', 'match');
result = [fund_cell{:}]
  댓글 수: 1
galaxy
galaxy 2020년 3월 17일
I see, but that is example only.
We don't know what contains in cell_arr.
> str_common = getStrCommon(cell_arr)
>
> ans = A.A1
Already many function for get common string in 2 strings as following:
But I want it more generality.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Migrate GUIDE Apps에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by