MATLAB Answers

0

textscan or regex to get numbers from a text message.

Asked by Ajpaezm on 30 Jan 2019
Latest activity Edited by Walter Roberson
on 30 Jan 2019
I have an expression that looks like this:
text = '[API.msg2] Order size 400 is smaller than the minimum required size of 500. {916423570, 388}';
This message can change the values of the numbers in the positions where the 400 and 500 are, I'd like to obtain/capture every number that appear in those positions. I tried doing strcmp or textscan using this, but it wasn't successful.
test = textscan(text, 'Order size %s is smaller than the minimum required size of %s.')
Do you know a way to make this work using textscan or regex? Thanks in advance.

  0 Comments

Sign in to comment.

Products


Release

R2016a

1 Answer

Answer by Walter Roberson
on 30 Jan 2019
Edited by Walter Roberson
on 30 Jan 2019
 Accepted Answer

>> text = '[API.msg2] Order size 400 is smaller than the minimum required size of 500. {916423570, 388}';
>> tf = '[API.msg2] Order size %f is smaller than the minimum required size of %f';
>> sscanf(text,tf)
ans =
400
500
>> textscan(text, tf)
ans =
1×2 cell array
{[400]} {[500]}
>> str2double(regexp(text, '\d{2,}', 'match'))
ans =
400 500 916423570 388

  0 Comments

Sign in to comment.