How can i read multiple values in a string?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Marco Silva
am 12 Aug. 2019
Kommentiert: Marco Silva
am 12 Aug. 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 Kommentare
Akzeptierte Antwort
Joel Handy
am 12 Aug. 2019
Bearbeitet: Joel Handy
am 12 Aug. 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')
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Target Language Compiler finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!