Effacer les filtres
Effacer les filtres

extract numbers from a string.

10 vues (au cours des 30 derniers jours)
Jasmine Zhu
Jasmine Zhu le 12 Sep 2022
Commenté : Jasmine Zhu le 13 Sep 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 commentaire
Star Strider
Star Strider le 12 Sep 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'.

Connectez-vous pour commenter.

Réponse acceptée

Voss
Voss le 12 Sep 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
  1 commentaire
Jasmine Zhu
Jasmine Zhu le 13 Sep 2022
It worked and thank you!

Connectez-vous pour commenter.

Plus de réponses (1)

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

Connectez-vous pour commenter.

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by