簡體   English   中英

正則表達式獲取文件名/從匹配項中排除某些字符

[英]Regex to get filename / exclude certain characters from the match

這是我的檔案:

name.extension

這是我的正則表達式:

.*[.]

但這與文件名和句點匹配:

#=> "filename."

我如何排除期間以實現:

#=> "filename"

我正在使用Ruby。

您可以使用File類方法File#basenameFile#extname

file= "ruby.rb"
File.basename(file,File.extname(file))
# => "ruby"

您只需要一個否定的字符分類:

^[^.]*

這將匹配所有內容,從字符串的開頭到找到一個句點(但不包括它)。

匹配最后一個“。”

 "filen.ame.extension"[/.*(?=\.)/]
  # => filen.ame

最多匹配第一個“。”

 "filen.ame.extension"[/.*?(?=\.)/]
 # => filen

另外,您可以在正則表達式中創建子組,然后選擇第一個:

str = 'name.extension'
p str[/(.*)[.]/,1] #=> name

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM