MATLAB: Search and replace exact substring

parsingregexpstrcmpstrrep

Hello,
I am parsing a string to check for an exact phrase. If the exact phrase is found, then I want to replace the phrase with a new phrase. The problem is, sometimes the phrase will be part of anothe phrase. Example:
wish to change the phrase "eps" to "%eps"
str = 'steps = eps*100 + beta*steps*eps';
newStr = 'steps = %eps*100 + beta*steps*%eps';
I'm having trouble picking out the exact phrase; each parsing phrase that I've come up with always catches something undesired e.g. 'steps' => 'st%eps' etc.
I've tried things like: st1 = regexprep(str,'^\w*(?=eps)^\w*','%eps')
(where I think I'm saing, look around the phrase "eps", if there's no "word" in the regexp sense, then replace the phrase with "%eps", but I'm obviously not there yet.
TIA,
CDQ (R2011b)

Best Answer

str = 'steps = eps*100 + beta*steps*eps';
regexprep([' ' str ' '],'(?<=[^a-zA-Z])eps(?=[^a-zA-Z])','%eps')