MATLAB: Can I use stringmatch, if I am looking for a match at the end of a string?

databaseDatabase Toolboxstrings

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 🙂

Best Answer

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.