这是我的档案:
name.extension
这是我的正则表达式:
.*[.]
然而,这与文件名和句点匹配:
#=> "filename."
如何排除期限以实现:
#=> "filename"
我正在使用Ruby。
答案 0 :(得分:3)
您可以使用File
课程方法File#basename
和File#extname
:
file= "ruby.rb"
File.basename(file,File.extname(file))
# => "ruby"
答案 1 :(得分:1)
你只需要一个否定的角色类:
^[^.]*
这将匹配所有内容,从字符串的开头到找到句点(但不包括它)。
答案 2 :(得分:0)
匹配到最后一个“。”
"filen.ame.extension"[/.*(?=\.)/]
# => filen.ame
首先匹配“。”
"filen.ame.extension"[/.*?(?=\.)/]
# => filen
答案 3 :(得分:0)
或者,您可以在正则表达式中创建子组,只需选择第一个:
str = 'name.extension'
p str[/(.*)[.]/,1] #=> name