Replace with regexprep in text file

조회 수: 1 (최근 30일)
Tiasa Ghosh
Tiasa Ghosh 2018년 9월 6일
댓글: Tiasa Ghosh 2018년 9월 6일
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?

채택된 답변

OCDER
OCDER 2018년 9월 6일
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 =
'€€€€€€...'

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Environment and Settings에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by