正则表达式在ruby 2.1.5中

时间:2016-04-13 05:33:11

标签: ruby regex

我想从:

中提取alpha-beta
text = "alpha-beta-1.0.txt"

得到:

output = "alpha-beta"

有人可以帮助我使用正则表达式吗?

3 个答案:

答案 0 :(得分:3)

  

如果您遇到计算机编程问题,并且您认为“我将使用   正则表达式!“,现在你有两个问题。

这里没有正则表达式:

strings = [
  "alpha-beta-1.0.txt",
  "alpha-beta-theta-2.0.txt",
  "alpha-3.0.text",
]

strings.each do |string|
  output = string.rpartition('-')[0]
  puts output
end

--output:--
alpha-beta
alpha-beta-theta
alpha

答案 1 :(得分:1)

如果您想在最后<af:panelBox />之前提取,可以使用此正则表达式

-

Rubular Demo

要查找所有不重叠的匹配项,您可以使用(^.*)-(?:.*$) 作为

scan

<强> Ideone Demo

您也可以使用str = "alpha-beta-1.0.txt" print str.scan(/(^.*)-(?:.*$)/)[0][0] 作为

lookahead

答案 2 :(得分:0)

根据我们提出的信息:

output = "alpha-beta-1.0.txt".match(/(.*-.*)-.*/)[1]

.*虽然匹配很多。所以也许你需要一个更严格的匹配。