extract numbers from a string.

25 ビュー (過去 30 日間)
Jasmine Zhu
Jasmine Zhu 2022 年 9 月 12 日
コメント済み: Jasmine Zhu 2022 年 9 月 13 日
str = "sensor_serials": {"H1": "3637", "H2": "3638", "H3": "2787"},
I would like to extract the number 3637, 3638, and 2787 from the above string. How should I do it? Thanks!
  1 件のコメント
Star Strider
Star Strider 2022 年 9 月 12 日
Something is wrong with that because it throws this error —
str = "sensor_serials": {"H1": "3637", "H2": "3638", "H3": "2787"}
Operator ':' is not supported for operands of type 'string'.

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

採用された回答

Voss
Voss 2022 年 9 月 12 日
str = '"sensor_serials": {"H1": "3637", "H2": "3638", "H3": "2787"}'
str = '"sensor_serials": {"H1": "3637", "H2": "3638", "H3": "2787"}'
numbers = regexp(str,'"(\d+)"','tokens');
numbers = [numbers{:}]
numbers = 1×3 cell array
{'3637'} {'3638'} {'2787'}
numbers = str2double(numbers)
numbers = 1×3
3637 3638 2787
  1 件のコメント
Jasmine Zhu
Jasmine Zhu 2022 年 9 月 13 日
It worked and thank you!

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

その他の回答 (1 件)

Hiro
Hiro 2022 年 9 月 12 日
You can use pattern:
pat = digitsPattern(4); % Pattern
str = '"sensor_serials": {"H1": "3637", "H2": "3638", "H3": "2787"}'
str = '"sensor_serials": {"H1": "3637", "H2": "3638", "H3": "2787"}'
numbers = extract(str,pat);
string(numbers)
ans = 3×1 string array
"3637" "3638" "2787"
  1 件のコメント
Jasmine Zhu
Jasmine Zhu 2022 年 9 月 13 日
Thank you for your reply. Unfortunately my matlab doesn't support digitsPattern().

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

カテゴリ

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!

Translated by