gpt4 book ai didi

ruby - 将 Ruby 字符串转换为 *nix 文件名兼容字符串

转载 作者:数据小太阳 更新时间:2023-10-29 06:43:14 24 4
gpt4 key购买 nike

在 Ruby 中,我有一个任意字符串,我想将其转换为有效的 Unix/Linux 文件名。它的最终形式看起来如何并不重要,只要它在视觉上可识别为它开始时的字符串即可。一些可能的例子:

"Here's my string!" => "Heres_my_string"
"* is an asterisk, you see" => "is_an_asterisk_you_see"

是否有任何内置的东西(可能在文件库中)可以完成这个(或接近这个)?

最佳答案

根据您的规范,您可以使用正则表达式替换来完成此操作。此正则表达式将匹配除基本字母和数字以外的所有字符:

s/[^\w\s_-]+//g

这将删除单词之间的任何额外空格,如您的示例所示:

s/(^|\b\s)\s+($|\s?\b)/\\1\\2/g

最后,用下划线替换剩余的空格:

s/\s+/_/g

在 Ruby 中:

def friendly_filename(filename)
filename.gsub(/[^\w\s_-]+/, '')
.gsub(/(^|\b\s)\s+($|\s?\b)/, '\\1\\2')
.gsub(/\s+/, '_')
end

关于ruby - 将 Ruby 字符串转换为 *nix 文件名兼容字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6672244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com