How to get common sub string in cell array string?

23 Ansichten (letzte 30 Tage)
galaxy
galaxy am 17 Mär. 2020
Kommentiert: galaxy am 17 Mär. 2020
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 ?

Akzeptierte Antwort

Stephen23
Stephen23 am 17 Mär. 2020
Bearbeitet: Stephen23 am 17 Mär. 2020
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 Kommentar
galaxy
galaxy am 17 Mär. 2020
Thank you for your anwser.
Your anser is same exactly my code. :))

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Bhaskar R
Bhaskar R am 17 Mär. 2020
Bearbeitet: Bhaskar R am 17 Mär. 2020
fund_cell = regexp(cell_arr , 'A.A1', 'match');
result = [fund_cell{:}]
  1 Kommentar
galaxy
galaxy am 17 Mär. 2020
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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by