Ruby将范围测量的字符串转换为测量列表?

Ste*_*Hej 1 ruby

我有一个我想要转换的示例字符串,由此:

#21inch-#25inch
Run Code Online (Sandbox Code Playgroud)

对此:

#21inch #22inch #23inch #24inch #25inch
Run Code Online (Sandbox Code Playgroud)

使用Ruby,请告诉我如何做到这一点.

Ily*_*lya 6

您可以使用scan字符串并使用字符串范围:

numbers = "#21inch-#25inch".scan(/\d+/)
=> ["21", "25"]
Range.new(*numbers).map{ |s| "##{s}inch" }.join(" ")
=> "#21inch #22inch #23inch #24inch #25inch"
Run Code Online (Sandbox Code Playgroud)

此解决方案仅在您的字符串具有类似实例的格式时才起作用.对于其他情况,您应该编写自己的特定解决方案.

  • 你也可以写'first,last ="#21inch ......"; (first..last).map {| s | ...}`. (2认同)