String parsing with a delimiter
1 回表示 (過去 30 日間)
古いコメントを表示
Hello, I’m having a little problem parsing a string using a delimiter. It leave the delimiter attached to my string. Here’s my code:
str = ‘counter=10;count=7;’;
[token, remain] = strtok(str, '=');
switch token
case 'counter'
[token1, remain1] = strtok(remain, ';');
counter = str2double(token1);
end
token comes out right but remain has the value of “=10;count=7;” so when I do my next strtok my token1 has a value of “=10”’. Is there any way to parse to a delimiter and remove it from my string in matlab? Thanks.
0 件のコメント
採用された回答
Matt Kindig
2012 年 5 月 16 日
To expand upon that, you can do something like this to loop through the entire string.
str = 'counter=10;count=7';
parts = regexp( str, '(?<arg>\w+)=(?<val>\d+);', 'names');
for k=1:length(parts),
arg = parts(k).arg;
switch arg,
case 'counter',
counter = str2double(parts(k).val);
case 'count',
%do something else.
%add additional cases as necessary.
end
end
1 件のコメント
Matt Kindig
2012 年 5 月 16 日
Glad I could be of assistance. Regular expressions are super-powerful once you learn them. I highly recommend looking them up in the Matlab help.
その他の回答 (1 件)
Matt Kindig
2012 年 5 月 16 日
What is your desired output? You might be able to do this easier with regular expressions.
doc regexp
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Characters and Strings についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!