textscan or regex to get numbers from a text message.

조회 수: 3 (최근 30일)
Ajpaezm
Ajpaezm 2019년 1월 30일
편집: Walter Roberson 2019년 1월 30일
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.

채택된 답변

Walter Roberson
Walter Roberson 2019년 1월 30일
편집: Walter Roberson 2019년 1월 30일
>> 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개)

카테고리

Help CenterFile Exchange에서 Text Data Preparation에 대해 자세히 알아보기

제품


릴리스

R2016a

Community Treasure Hunt

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

Start Hunting!

Translated by