replacing all occurrences of a string in a file using regexp

2 views (last 30 days)
Hello,
I have a very large file that contains sections like these below
VariableProp('GND_R', 'UD', '', '130mm')
VariableProp('T', 'UD', '', '1mm')
VariableProp('RC', 'UD', '', '38mm')
.
.
.
VariableProp('ALFAD', 'UD', '', '255deg')
I need to find all the occurrences of VariableProp(VarName, 'UD', '', VarValue) in the file, and change the VarValue
I am still learning the regexp topic, so in this case help would be appreciated
Thank you
  4 Comments
Chris
Chris on 11 Nov 2022
I've found https://regexr.com/ to be a useful resource for figuring out regular expressions (though there may be some minor disagreement with regexp(), not sure), but Jan's prototype is more Matlabby, easier to understand, and perhaps more performant.
Rik
Rik on 11 Nov 2022
You are not giving many details.
What are the requirements for those names? Can any characters occurs between those quotes? If that includes single quotes, how are those escaped?
You say you want to change the VarValue part, but you haven't given any indication of what kind of change you want to make.

Sign in to comment.

Accepted Answer

Jan
Jan on 11 Nov 2022
Edited: Jan on 11 Nov 2022
Is it required to use regexp? If not:
C = readlines(FileName);
m = startsWith(C, "VariableProp('" + VarName + ", 'UD', '', ");
C(m) = sprintf("VariableProp('%s', 'UD', '', '%g%s')", VarName, newValue, newUnit);
writelines(FileName, C);
  6 Comments
Jan
Jan on 11 Nov 2022
@Robert Jones: I guess you have these input data beside the file:
newData = {'GND_R', '130mm'; ...
'T', '1mm'; ...
'RC', '38mm'};
If you post the format of your input, a better matching suggestion could be given.
Then you can expand my code:
C = readlines(FileName);
for k = 1:height(newData)
VarName = newData{k, 1};
Value = newData{k, 2};
m = startsWith(C, "VariableProp('" + VarName + ", 'UD', '', ");
C(m) = sprintf("VariableProp('%s', 'UD', '', '%s')", VarName, Value);
end
writelines(FileName, C);

Sign in to comment.

More Answers (0)

Categories

Find more on Live Scripts and Functions in Help Center and File Exchange

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!