我有以下一行
'passenger (2.2.5, 2.0.6)'.match(//)[0]
显然不匹配任何东西
我想在开括号之后和逗号之前返回(2.2.5,
的内容。
我该怎么做?
答案 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"]