How to get common sub string in cell array string?

조회 수: 31(최근 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 ?

채택된 답변

Stephen
Stephen 2020년 3월 17일
편집: Stephen 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.

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

Community Treasure Hunt

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

Start Hunting!

Translated by