regex - 删除一行中的固定文件扩展名

标签 regex ruby

当我这样做的时候

ruby -e 'print "file: #{ARGF.filename}"' test1.adoc

它打印test1.adoc,但我正在寻找的是删除扩展名,所以我只得到test1。如果这样做

$ touch test1.adoc
$ ruby -e 'print "file: #{ARGF.filename}.sub('.adoc','')"' test1.adoc
Traceback (most recent call last):
    1: from -e:1:in `<main>'
-e:1:in `filename': No such file or directory @ rb_sysopen - test1.adoc (Errno::ENOENT)

使用 pop 很想得到一个通用的解决方案,但是沿着这条路走下去会更困难......

问题

有人能弄清楚如何删除我的一行中的 .adoc 吗?

最佳答案

使用File.basename删除扩展名和文件路径的其余部分。

puts File.basename('test1.adoc', '.*')  # test1
puts File.basename('/foo/bar/test1.adoc', '.*')  # test1

关于regex - 删除一行中的固定文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64636922/

相关文章:

regex - 如何调试正则表达式?

android - logcat 无法识别 --regex 选项

ruby - String#delete 忽略特殊字符

ruby-on-rails - 带有前/后过滤器和观察器的 Rails 模型,是否可以忽略这些钩子(Hook)?

ruby-on-rails - 运行 'rake assets:precompile' 产生错误 : '` @application. css' is not allowed as an instance variable name'

ruby - 在固定大小的数组上展开选择的算法

regex - 使用 Visual Studio 进行条件替换

regex - 使用grep提取不以3个二进制数字开头的6个任意数字

ios - 接受电子邮件地址和 10 位电话号码的正则表达式

ruby-on-rails - 将 JSON 响应压缩为 zip 并下载当用户在 Rails 中点击 h URL 时