MATLAB: Identifying Keywords in Strings strfind

arrayinputstrfindstringstrings

hello! I'm trying to get this program to recognize a couple of keywords in a string and then based on what those words are, give me an output.
so if i said "killing your father" it would recognize "Killing" as "Bad", "father" as "GoodObject" and mixing those two would get a "that's bad" result.
If i were to write "helping your brother" it would recognize "helping" as "Good" and "brother" as "GoodObject" it would give a "that's good" result.
The problem is I don't know how to make it so the program can recognize two strings in the same sentence. I thought using "&" would work, but it doesn't and i get ??? Undefined function or method 'and' for input arguments of type 'cell'.
Error in ==> goodbad at 11
if any(strcmpi(question,GoodObject & Good))
how could i use strfind so that it identifies anything in the Array "Good Object" or "Bad" or "Good"?
thank you!
GoodObject = {'brother', 'sister', 'mother', 'father'};
Bad = {'killing', 'hurting', 'stealing', 'robbing'};
Good = {'helping', 'giving', 'sharing', 'forgiving'};
question = input ('what?','s')
if any(strcmpi(question,GoodObject & Good))
disp('that''s good')
else if any(strcmpi(question,GoodObject & Bad))
disp('that''s bad')
end
end

Best Answer

I think you want to try regexp, regexpi and/or regexprep.
In the Matlab documentation, this is under: Matlab > Language Fundamentals > Data Types > Characters and Strings > Parse Strings....
There is a whole section under Examples and How To on "Regular Expressions".