Extracting Numbers from a mixed string
1 view (last 30 days)
Show older comments
Hayden Garmon
on 16 Jul 2020
Commented: Hayden Garmon
on 17 Jul 2020
Hi!
I would like to know how to extact the numbers from this string,
such that:
a = [ 3.00, 3.1390 , 0.0070, 1160]
b = [ 20.00. 20.1350, 0.012. 1323]
0070 , 1160
"Lung: 3.00 Calibrated: 3.1390 Uncertainty: 0.0070 Asset# 1160 Cal= N/A Due= N/A"
"Lung: 20.00 Calibrated: 20.1350 Uncertainty: 0.0120 Asset# 1323 Cal= N/A Due= N/A"
I cannot get the correct value with b=regexp(str,'\d?\.?\d+','match'), but I am close I think.
It works for a, but not for b
Cheers
HRG
0 Comments
Accepted Answer
Kelly Kearney
on 16 Jul 2020
Assuming numbers only appear as properly-formatted combos, you can simply look for all number-decimal groups:
b = regexp(str, '[\d\.]+', 'match');
This one is a little more picky, making sure the number-decimal groups form a "proper" number (i.e. wouldn't match something like 1.2.3)
b = regexp(str, '\d+\.{0,1}\d+', 'match');
See Also
Categories
Find more on Characters and Strings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!