Удаление новой строки перед строкой, соответствующей регулярному выражению

#ruby #regex

#ruby #регулярное выражение

Вопрос:

У меня есть 5 строк

 line1
line2
line3
line4
line5
  

Используя регулярное выражение, я сопоставил строку3. Теперь есть ли способ переместить строку 3 сразу после строки 2 (другими словами, убрать n в конце строки 2)?

Я планирую использовать line3.sub(/myregex/, "some way to pull up line3 right after line2") метод.

или я могу сделать line2.sub(/regex_to_select_the_/n_at_the_end/, "") . Сработает ли это?

Есть ли лучший / другой способ сделать это?

Комментарии:

1. Регулярные выражения имеют единственную цель; находить шаблоны текста. Как только вы это найдете, вам почти всегда лучше использовать другой инструмент для манипулирования этими данными.

Ответ №1:

Просто поместите регулярное выражение, которое вы использовали для сопоставления line3 , в поисковое выражение, найдите n перед этим и замените его ничем:

 result = subject.gsub(/n(?=regex)/, '')
  

(где regex ваше регулярное выражение).