take out numbers from string

1 Ansicht (letzte 30 Tage)
Jay Hanuman
Jay Hanuman am 19 Dez. 2016
Kommentiert: Jay Hanuman am 19 Dez. 2016
I attached file which contains as this
'10.0.7.4:22->10.0.8.5:26856'
'10.0.13.4:22->10.0.12.5:9997'
'10.0.9.4:22->10.0.10.5:47576'
'10.0.14.4:443->10.0.10.5:4922'
'10.0.14.4:443->10.0.10.5:20113'
'10.0.11.4:80->10.0.13.5:61779'
'10.0.10.4:22->10.0.9.5:64788'
'10.0.9.4:80->10.0.10.5:25283'
I want to take out numbers appears after 1st and 2nd colon in two different variable. i.e. A=[22 22 443 443 80 22 80] and B=[26856 9997 47576 4922....] but A and B should be in column format. how to do it.

Akzeptierte Antwort

Guillaume
Guillaume am 19 Dez. 2016
There's no point in creating two different variables when it's much easier to have the output as two columns of the same variable. Here's one way to do it:
suffix = regexp(VarName6, '(?<=:)\d+', 'match'); %match sequence of numbers following a :
suffix = str2double(vertcat(suffix{:})) %convert cell array of cell arrays into one big cell array and convert strings to numeric
  2 Kommentare
José-Luis
José-Luis am 19 Dez. 2016
Bearbeitet: José-Luis am 19 Dez. 2016
I really should work on my regexes... +1
Jay Hanuman
Jay Hanuman am 19 Dez. 2016
works Thank you.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

José-Luis
José-Luis am 19 Dez. 2016
Bearbeitet: José-Luis am 19 Dez. 2016
I'll get you started:
data = [{'10.0.7.4:22->10.0.8.5:26856'};{'10.0.13.4:22->10.0.12.5:9997'}];
result = cellfun(@(x) regexp(x,':[0-9]+','match'),data,'UniformOutput',false);
a = cellfun(@(x) sscanf(x{1},':%d'),result);
b = cellfun(@(x) sscanf(x{2},':%d'),result);
There are other, possibly better, ways.
  2 Kommentare
Guillaume
Guillaume am 19 Dez. 2016
Bearbeitet: Guillaume am 19 Dez. 2016
Well, I'd certainly use captures (tokens in matlab) or look-behind to avoid returning the : as part of the match.
Capture:
regexp(x, ':([0-9]+)', 'tokens')
Look-behind:
regexp(x, '(?<=:)[0-9]+', 'match')
Jay Hanuman
Jay Hanuman am 19 Dez. 2016
works Thank you.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Characters and Strings finden Sie in Help 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