ruby正则表达式和分组
我有跟随文本'some-text-here'
并尝试使用组从中获取'text'
字样。
如果我使用那个表达式/some-(\w+)-here/
all工作正常,但是如果我尝试对它进行分组/some-(?\w+)-here/
它会引发错误Undefined (?...) sequence.
我做错了什么?
(Ruby 1.9.2)
更新:对我感到羞耻。 这完全取决于我的经营权。 是的,我使用RVM,我的ruby版本打开了1.9.2。 但我已经在http://rubular.com/上测试了这个表达式,它是Rubular runs on Ruby 1.8.7
的页脚Rubular runs on Ruby 1.8.7
。 Ruby 1.8.7和Ruby 1.9.2有一个不同的正则表达式引擎。 所以我的表达式适用于1.9.2,但不适用于1.8.7
对我来说,看起来你正在看错了Ruby。 你可能安装了RVM吗?
1.9.2
>> RUBY_VERSION => "1.9.2" >> s='some-text-here' => "some-text-here" >> /some-(?\w+)-here/ =~ s => 0 >> group_name #=> "text"
1.8.7
>> RUBY_VERSION => "1.8.7" >> s='some-text-here' => "some-text-here" >> /some-(?\w+)-here/ =~ s SyntaxError: compile error (irb):2: undefined (?...) sequence: /some-(? \w+)-here/ from (irb):2
很抱歉这个,但我的客户端有ruby 1.8.7,我需要使用使用组的正则表达式替换文本。
有没有办法用ruby 1.8.7做到这一点?
这些是我在1.9.2-p290
结果:
irb(main):004:0> "some-text-here".match(/some-(?\w+)-here/) => # irb(main):005:0> RUBY_VERSION => "1.9.2"