search for a word in a string with complete match

9 views (last 30 days)
Hi all,
I have a string and a cell as follows
StringText = 'High rotation speed changes the parameter RevolutionChange'
WordCell = {'Slip' , 'GearRatio','Revolution','RevolutionChange'}
When I use regular explression to find the line parameters in StringText, the 3rd and 4th indices are obtained as outputs. I need only the 4th index to be the output
Index = regexp(StringText, WordCell, 'match')
Present output = 1×4 cell array => {0×0 cell} {0×0 cell} {Revolution} {RevolutionChange}
required output = 1×4 cell array => {0×0 cell} {0×0 cell} {0x0 cell} {RevolutionChange}
Thanks

Accepted Answer

Akira Agata
Akira Agata on 12 Nov 2019
How about the following way?
StringText = 'High rotation speed changes the parameter RevolutionChange';
WordCell = {'Slip' , 'GearRatio','Revolution','RevolutionChange'};
% Split text into words
WordsInText = split(StringText);
% Find word(s) in WordCell used in the StringText
idx = ismember(WordCell,WordsInText);
% Show word(s) used in the StringText
WordCell(idx)
ans =
{'RevolutionChange'}
  1 Comment
Raghunandan Venkatesh
Raghunandan Venkatesh on 12 Nov 2019
Hi Akira,
Thanks for the answer. It works!
Just out of curiosity, Is there a way to do the same without strsplit?

Sign in to comment.

More Answers (0)

Categories

Find more on Characters and Strings in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!