拆分字符串并删除字符串中的第一个元素

Split a string and remove the first element in string

 Original string                  '4.0.0-4.0-M-672092'
 

如何使用一行代码将原始字符串修改为“4.0-M-672092”。 非常感谢任何帮助。

感谢和问候

'split' 方法适用于这种情况

https://apidock.com/ruby/String/split

'4.0.0-4.0-M-672092'.split('-')[1..-1].join('-')

# => "4.0-M-672092"

请注意,在此应用程序中没问题,但在长文本中这可能会变得未优化,因为它会拆分所有字符串,然后重新加入数组


如果你需要在更宽的文本中更优化这个,你可以找到“-”索引(这是你的拆分)并使用下一个位置来制作子字符串

text = '4.0.0-4.0-M-672092'
text[(text.index('-') + 1)..-1]

# => "4.0-M-672092"

但是你不能在一行中完成,找不到分割字符会导致错误,所以如果可能发生,请使用 rescue 语句

最简单的方法:

'4.0.0-4.0-M-672092'.split('-', 2).second

"4.0.0-4.0-M-672092"[/(?<=-).*/]
  #=> "4.0-M-672092"

正则表达式显示为“尽可能多地匹配换行符以外的零个或多个字符 (.*),前提是匹配前面有一个连字符。(?<=-) 是一个 积极回顾。参见String#[]