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.

 Akzeptierte Antwort

Birdman
Birdman am 19 Jan. 2018
Bearbeitet: Birdman am 19 Jan. 2018

0 Stimmen

One approach:
s1="30th Birthday WORLDCUP34 WORLDCUP'34 '04";
str=strsplit(s1,' ');
result=str(cellfun(@isempty,(regexp(str,'\d+'))))

5 Kommentare

HIRAKJYOTI BASUMATARY
HIRAKJYOTI BASUMATARY am 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 am 19 Jan. 2018
Bearbeitet: Birdman am 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 am 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 am 19 Jan. 2018
Ok Jan, thanks. It just takes time to get used to working with cellfun.
HIRAKJYOTI BASUMATARY
HIRAKJYOTI BASUMATARY am 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Birthdays finden Sie in Hilfe-Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by