Replace with regexprep in text file
2 views (last 30 days)
Show older comments
Hello everybody! I am using regexprep to replace a set of characters in a text file.
For example: I am trying to replace +, - , /, ) , (| occurences in my text file with |€. so i used the following code
fid = fopen('repSymbols.txt','wt');
inData = fileread('equations');
fprintf(fid,'%s',regexprep(inData,'[=+)-/(]','€'));
fclose(fid);
But when I use this, it also replaces the occurences of dot . in the file. I don't want the dots to be replaced. Any idea on this?
0 Comments
Accepted Answer
OCDER
on 6 Sep 2018
The ")-/" term in the pattern search is actually interpretted as all characters from ")" to "/". So it's the following:
char(uint8(')'):uint8('/'))
ans =
')*+,-./'
Therefore the expanded search pattern does include the ".".
To fix this, use the escape character "\" before the character "-" like this:
inData = '=+)-/(...';
regexprep(inData,'[=+)-/(]','€') %Incorrect
ans =
'€€€€€€€€€'
regexprep(inData,'[=+)\-/(]','€') %Correct
^ add this \
ans =
'€€€€€€...'
More Answers (0)
See Also
Categories
Find more on Environment and Settings 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!