2013-04-13 2 views
0

Я хотел бы сделать что-то вроде:Как вы помещаете n в строку замены регулярных выражений?

string.gsub(/(whatever)/,'\n\1\n') 

Но я не хочу «все», чтобы заменить буквальное «\ nwhatever \ п» Я хочу \ п на самом деле соответствуют новая линия.

+0

Что вы имеете в виду? '\ n' является новой строкой и будет символом новой строки. – squiguy

+0

Код, который я поставил выходы «\ nwhatever \ n» Я хочу, чтобы он выводил «что угодно» с новыми строками вокруг него. – Tommy

+0

'\ n' - это представление новой строки в строке. если у вас возникли проблемы с рендерингом этой строки (в зависимости от вашей ОС), вы можете попробовать 'string.gsub (/ (что угодно) /, '\ r \ n \ 1 \ r \ n') – ted

ответ

1

Я думаю, что вам нужно двойные кавычки:

string.gsub(/(whatever)/,"\n\\1\n") 
+0

\ 1 не работает с двойными кавычками ..? – Tommy

+0

@Tommy Нужно быть \\ 1. –

+0

Спасибо, я забыл все об экранировании '\ 1'. – squiguy

1

\ п новая линия, вот что это значит в зависимости от того, как вы печатаете, он даст вам новую линию так

puts "\nwhatever\n".inspect 
=> "\nwhatever\n" 

однако:

puts "\nwhatever\n" 
=> 
=> whatever 
=> 

Если я неправильно вопрос.

Если вы хотите, чтобы разделить его в список, сделайте следующее:

puts "\nwhatever\n".split(?\n).inspect 
=> ["", "whatever"] 
+0

ставит '\ nwhatever \ n' выходы \ nwhatever \ n для меня – Tommy

+0

@Tommy Видите ли вы разницу между '' \ nwhatever \ n'', тем, что вы написали, и ' "\ nwhatever \ n" ', что в ответе? –

+0

Хмм, этого не должно быть. Как насчет 'puts '\ r \ nwhatever \ r \ n"?? – user21033168

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