我正在编写一个生成数组编号的Matlab代码,它应该替换文本文件(已经存在)中的每个数字,并用它替换所有实例。该数字应为字符串格式。我实现了这个目标:
ita='"';
for i=1:size(z,2)
word_to_replace=input('Replace? ','s');
tik=input('Replacement? ','s');
coluna=input('Column? ');
files = dir('*.txt');
for i = 1:numel(files)
if ~files(i).isdir % make sure it is not a directory
contents = fileread(files(i).name);
fh = fopen(files(i).name,'w');
val=num2str(z(i,coluna));
word_replacement=strcat(tik,val,ita);
contents = regexprep(contents,'word_to_replace','word_replacement');
fprintf(fh,contents); % write "replaced" string to file
fclose(fh) % close out file
end
end
end
我希望代码打开文件#1('file.txt'),找到并用'word_to_replace'替换所有实例'word_replacement'并保存到同一个文件中。 txt文件的数量是未定义的,可以是100或10000。
非常感谢提前。
答案 0 :(得分:2)
您的代码存在以下问题:
contents = regexprep(contents,'word_to_replace','word_replacement');
您正在使用正则表达式在文本文件中查找word_to_replace
的任何实例,并将其更改为word_replacement
。查看代码,似乎这些变量都包含字符串。我假设你想要变量的内容而不是变量的实际名称。
因此,只需删除regexprep
的第二个和第三个参数周围的引号,这应该可行。
换句话说,这样做:
contents = regexprep(contents, word_to_replace, word_replacement);