我的脚本从网上下载文件,然后将它们保存在从同一个Web服务器获取的名称下.我需要在Windows NTFS下为文件/文件夹名称过滤 /删除无效字符.
我也很乐意使用多平台过滤器.
注意:类似的东西htmlentities会很棒....
liw*_*iwp 21
就像Geo所说,通过使用gsub你可以轻松地将所有无效字符转换为有效字符.例如:
file_names.map! do |f|
f.gsub(/[<invalid characters>]/, '_')
end
Run Code Online (Sandbox Code Playgroud)
您需要替换<invalid characters>文件系统中不允许的文件名可能包含的所有可能字符.在上面的代码中,每个无效字符都替换为a _.
维基百科告诉我们NTFS上不允许使用以下字符:
(比...更棒)
所以你的gsub电话可能是这样的:
file_names.map! { |f| f.gsub(/[\x00\/\\:\*\?\"<>\|]/, '_') }
Run Code Online (Sandbox Code Playgroud)
用下划线替换所有无效字符.
Hit*_*eeb 14
filename_string.gsub(/[^\w\.]/, '_')
Run Code Online (Sandbox Code Playgroud)
说明:替换除字符 (字母,数字,下划线)和点之外的所有内容