extract numbers from string in a cell

12 vues (au cours des 30 derniers jours)
S
S le 8 Mai 2012
Hi, I have a cell containing a string such as 'TT21abc.def'. I want to extract just the numbers so I'm left with '21'. Does anyone know how? I tried using sscanf but I was getting errors and think I don't have the right format inputs. Thanks in advance.

Réponse acceptée

Friedrich
Friedrich le 8 Mai 2012
Hi,
you can use regexprep or some ascii value representation comparison to do so, e.g.
a = {'TT21abc.def'};
%ascii value comparison, char(48) = '0' and char(57) = '9'
a{1}(a{1} <= 57 & a{1} >= 48)
%or use regexprep
regexprep(a{1},'\D','')
If you have a cell array with strings, I would use regexprep because it can handle cell arrays of strings as input
b = {'TT21abc.def'
'sdfsdf34435afafsd.,.,3434'}
out = regexprep(b,'\D','')

Plus de réponses (1)

Andrei Bobrov
Andrei Bobrov le 8 Mai 2012
with using function regexp
regexp(a,'\d*','match')
or:
b = {'TT21abc.def'
'sdfsdf34435afafsd.,.,3434'}
out = regexp(b,'\d*','match');
out = cat(2,out{:})

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