If i have a string =
" 30th Birthday WORLDCUP34 WORLDCUP'34 '04 "
and i want the output to be only =
" Birthday " ,
then how can i go forward to achieve such by removing all expressions containing numbers with it.

 Réponse acceptée

Birdman
Birdman le 19 Jan 2018
Modifié(e) : Birdman le 19 Jan 2018
One approach:
s1="30th Birthday WORLDCUP34 WORLDCUP'34 '04";
str=strsplit(s1,' ');
result=str(cellfun(@isempty,(regexp(str,'\d+'))))

5 commentaires

HIRAKJYOTI BASUMATARY
HIRAKJYOTI BASUMATARY le 19 Jan 2018
Thanks a lot. Also is there is a way if the expression was s1="30th Birthday WORLDCUP34 WORLDCUP'34 '04 Messi"; and i want the output in a single cell as "Birthday Messi" , both in a single cell .
Birdman
Birdman le 19 Jan 2018
Modifié(e) : Birdman le 19 Jan 2018
s1="30th Birthday WORLDCUP34 WORLDCUP'34 '04 Messi";
str=strsplit(s1,' ');
result=strjoin(str(cellfun(@isempty,(regexp(str,'\d+')))))
Use strjoin different than my first answer.
Jan
Jan le 19 Jan 2018
@Birdman: cellfun works faster with the builtin commands, which are specified as chars, here: cellfun('isempty', ...).
@HIRAKJYOTI BASUMATARY: Did you try Birdman's solution with your new string? It should run directly. What does this mean: "output in a single cell as "Birthday Messi" , both in a single cell"?
Birdman
Birdman le 19 Jan 2018
Ok Jan, thanks. It just takes time to get used to working with cellfun.
HIRAKJYOTI BASUMATARY
HIRAKJYOTI BASUMATARY le 19 Jan 2018
@Birdman Sir and @Jan Simon Sir , thanks a lot for the guidance. Yes @Jan simon sir, i meant in a single cell.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Birthdays dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by