extract numbers from a string.

13 visualizaciones (últimos 30 días)
Jasmine Zhu
Jasmine Zhu el 12 de Sept. de 2022
Comentada: Jasmine Zhu el 13 de Sept. de 2022
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 comentario
Star Strider
Star Strider el 12 de Sept. de 2022
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'.

Iniciar sesión para comentar.

Respuesta aceptada

Voss
Voss el 12 de Sept. de 2022
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

Más respuestas (1)

Hiro Yoshino
Hiro Yoshino el 12 de Sept. de 2022
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 comentario
Jasmine Zhu
Jasmine Zhu el 13 de Sept. de 2022
Thank you for your reply. Unfortunately my matlab doesn't support digitsPattern().

Iniciar sesión para comentar.

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by