2012-01-25 3 views
1

Я пытаюсь использовать Regex в моей программе Ruby для преобразования «|» символ в строке выключателя, так, например:Заменить символ трубы «|» с разрывами строк?

# convert("title|subtitle") => "title \n subtitle" 

Регулярное выражение Я пытаюсь следующий:

title_params =~ s/\|/\\n/ 

Но я продолжал получать ошибки, говоря, что «|» не признается.

+0

В Ruby вы не используете '' sed' стиль s/Foo/бар/'для замены текста, вы используете [' String # gsub'] (http://www.ruby-doc.org/core-1.9.3/String.html#method-i-gsub). – Phrogz

ответ

8

Regex не требуется для этой простой задачи:

=> puts "foo|bar".tr("|","\n") 
foo 
bar 
+2

См. ['String # tr'] (http://www.ruby-doc.org/core-1.9.3/String.html # method-i-tr) для получения дополнительной информации. – Phrogz

2

Я действительно не знаю синтаксиса вашего способа сделать это, но это отлично работает для меня.

>> a = "title | subtitle" 
=> "title | subtitle" 
>> a.gsub(/\|/,"\n") 
=> "title \n subtitle" 
+1

Или даже 'a.gsub (" | "," \ n ")' – Phrogz

Смежные вопросы