How can i read multiple values in a string?
1 回表示 (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Joel Handy
2019 年 8 月 12 日
編集済み: Joel Handy
2019 年 8 月 12 日
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')
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Target Language Compiler についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!