How to get common sub string in cell array string?

24 vues (au cours des 30 derniers jours)
galaxy
galaxy le 17 Mar 2020
Commenté : galaxy le 17 Mar 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 ?

Réponse acceptée

Stephen23
Stephen23 le 17 Mar 2020
Modifié(e) : Stephen23 le 17 Mar 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 commentaire
galaxy
galaxy le 17 Mar 2020
Thank you for your anwser.
Your anser is same exactly my code. :))

Connectez-vous pour commenter.

Plus de réponses (1)

Bhaskar R
Bhaskar R le 17 Mar 2020
Modifié(e) : Bhaskar R le 17 Mar 2020
fund_cell = regexp(cell_arr , 'A.A1', 'match');
result = [fund_cell{:}]
  1 commentaire
galaxy
galaxy le 17 Mar 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.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by