将ruby中的字符串与正则表达式匹配

时间:2010-01-12 19:30:55

标签: ruby regex

我有以下一行

'passenger (2.2.5, 2.0.6)'.match(//)[0]

显然不匹配任何东西

我想在开括号之后和逗号之前返回(2.2.5,的内容。

我该怎么做?

3 个答案:

答案 0 :(得分:2)

Beanish解决方案在超过2个版本号上失败,你应该使用类似的东西:

>> 'passenger (2.2.5, 2.0.6, 1.8.6)'.match(/\((.*?),/)[1] # => "2.2.5"

答案 1 :(得分:1)

'passenger (2.2.5, 2.0.6)'.match(/\((.*),/)[1]

如果您使用$ 1元素,则它是在()

中找到的组

答案 2 :(得分:1)

#!/usr/bin/env ruby

s = 'passenger (2.2.5, 2.0.6)'
p s.scan(/(?:\(|, *)([^,)]*)/).flatten    # => ["2.2.5", "2.0.6"]