Can I use stringmatch, if I am looking for a match at the end of a string??
1 次查看(过去 30 天)
显示 更早的评论
Hello everybody, I have a dataset of strings with a structure 'product_reaction_parameter' and I want to check whether a specified string (e.g. 'parameter2' is contained in the string, how can I do that? Strmatch only looks for matches at the beginning of the string but I wanna look for matches in the middle or at least in the end...the output I need is the row index as it is obtained when using conventional strmatch.
Would really appreciate any kind of advice, I am a Chemist and thus not very well-trained in programming :)
0 个评论
采纳的回答
Geoff
2012-4-3
You should use regular expressions for this.
doc regexp
They are far more powerful than simple string matching, but you can use them for that purpose:
idx = regexp(s, 'parameter2$');
if ~isempty(idx)
disp('Found parameter2');
end
The $ matches at the end of the string.
You can also use regexp to split your string up into its parts:
tokens = regexp(s,'(.*)_(.*)_(.*)', 'tokens')
And then use straight string comparison on the third token.
1 个评论
Geoff
2012-4-3
This will also work on a cell-array of strings, matching each row. It returns an array of indices for the position where the string was matched. To turn that into a row index into your cell, you do this:
rows = find(cellfun(@(x) ~isempty(x), regexp(s, 'parameter2$')));
更多回答(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!