Word 文档名称批量重命名:保留数字部分,删除不固定字符串
如果要删除Word文档名称中的不固定字符串,并保留前面的数字部分,可以使用正则表达式来匹配并提取这部分内容。以下是一个示例,演示如何处理这种情况:
% 设置要读取的Word文档所在的文件夹路径
folderPath = 'C:\Documents';
% 获取文件夹中的所有Word文档
files = dir(fullfile(folderPath, '*.docx'));
% 定义要删除的字符串的正则表达式模式
pattern1 = '(\d+-\d+-1)(.*)';
pattern2 = '(\d+-\d+)(.*)';
% 遍历所有Word文档,修改它们的名称
for i = 1:length(files)
filePath = fullfile(files(i).folder, files(i).name);
doc = docx(filePath);
docName = doc.DocumentProperties.Title;
% 提取数字部分
match1 = regexp(docName, pattern1, 'tokens');
match2 = regexp(docName, pattern2, 'tokens');
if ~isempty(match1)
% 保留前面的数字部分
docName = match1{1}{1};
elseif ~isempty(match2)
% 保留前面的数字部分
docName = match2{1}{1};
else
% 若不属于以上两种情况,则跳过此文档
continue;
end
% 更新文档名称
doc.DocumentProperties.Title = docName;
doc.save();
doc.close();
% 构建新的文档路径
newFilePath = fullfile(files(i).folder, [docName, '.docx']);
% 更改文档路径
movefile(filePath, newFilePath);
end
在上述示例中,我们首先设置要读取的Word文档所在的文件夹路径,并获取文件夹中的所有以.docx为扩展名的Word文档。然后,我们定义了两个正则表达式模式,pattern1用于匹配以数字-数字-1开头的情况,pattern2用于匹配以数字-数字开头的情况。接下来,我们遍历所有的Word文档。对于每个文档,我们使用正则表达式模式来匹配并提取前面的数字部分,并更新文档对象的名称属性。然后,我们使用doc.save()保存更改,使用doc.close()关闭文档。最后,我们构建新的文档路径,并使用movefile函数将文档从原始路径移动到新的路径。
请确保将示例中的文件夹路径替换为你实际的路径,并根据需要修改正则表达式模式以匹配你的文档名称格式。
原文地址: http://www.cveoy.top/t/topic/ozs 著作权归作者所有。请勿转载和采集!