MATLAB Answers

Extracting Numbers from a mixed string

3 ビュー (過去 30 日間)
Hayden Garmon
Hayden Garmon 2020 年 7 月 16 日
コメント済み: Hayden Garmon 2020 年 7 月 17 日
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 件のコメント

サインインしてコメントする。

採用された回答

Kelly Kearney
Kelly Kearney 2020 年 7 月 16 日
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');

  1 件のコメント

Hayden Garmon
Hayden Garmon 2020 年 7 月 17 日
Thanks Kelly!

サインインしてコメントする。

その他の回答 (1 件)

jonas
jonas 2020 年 7 月 16 日
編集済み: jonas 2020 年 7 月 16 日
out=regexp(b,'\d*\.?\d+','match')
Your expression will fail when there are more than 1 digits before the decimal sign, as ? is interpreted as "0 or 1" digit before the (optional) decimal sign

  0 件のコメント

サインインしてコメントする。

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by