How can i read multiple values in a string?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Marco Silva
le 12 Août 2019
Commenté : Marco Silva
le 12 Août 2019
Hi guys,
I have a problem getting some values.
Basically, i have a variable (string) that always has the same format but with a variable length.
Some examples:
- " H:2T:16799C:7| H:2T:16803C:15 | H:1T:17399C:11 "
- " H:4T:16500C:7 "
- " H:6T:568C:20| H:5T:313929C:11 "
How we can see, the variable has the same format in all examples but can have a variable number of repetitions.
I want to read the values, for the first example: 2 - 16799 - 7 | 2 - 16803 - 15 | 1 - 17399 - 11.
How can i do this dynamically? To be able to read in all cases.
Thanks.
0 commentaires
Réponse acceptée
Joel Handy
le 12 Août 2019
Modifié(e) : Joel Handy
le 12 Août 2019
I believe a regular expression along these lines is what you are looking for.
data = regexp('1º:" H:2T:16799C:7| H:2T:16803C:15 | H:1T:17399C:11 "', ...
'H:(?<H>\d+)T:(?<T>\d+)C:(?<C>\d+)', 'names')
H = str2double({data.H})
T = str2double({data.T})
C = str2double({data.C})
If these are all lines in a file, you can read the entire file into a signle string and process everything at once.
MyString = sprintf('1º:" H:2T:16799C:7| H:2T:16803C:15 | H:1T:17399C:11 "\n2º:" H:4T:16500C:7 "\n3º:" H:6T:568C:20| H:5T:313929C:11 "')
regexp(MyString, 'H:(?<H>\d+)T:(?<T>\d+)C:(?<C>\d+)', 'names')
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Target Language Compiler 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!