2013-03-01 5 views
0

У меня возникла проблема с выполнением следующей команды с использованием IRB. Ruby 2.0 Сценарий взят из официального документа Ruby Core 2.0 Doc.Ruby gsub Ошибка IRB

"hello".gsub(%r([aeiou])/, '<\1>') 

(irb):2: syntax error, unexpected ')', expecting end-of-input 
    from /usr/local/rvm/rubies/ruby-2.0.0-p0/bin/irb:16:in `<main>' 

ответ

3
"hello".gsub(%r([aeiou]), '<\1>') 
"hello".gsub(/[aeiou]/, '<\1>') 

Использование %r() или //

+0

Прохладный! Спасибо! –

4
"hello".gsub(%r([aeiou]), '<\1>') 

У вас есть дополнительный /. Либо используйте %r(), либо // как разделитель регулярных выражений.

Я проверил документацию, и я подтверждаю наличие там опечатки. Однако я считаю, что это вызвано RDoc, потому что the original source is correct.

+0

В чем разница между ними? –

+0

Нет никакой разницы. Ruby позволяет создавать регулярные выражения по-разному. –