Ruby регулярное выражение для удаления новых строк из указанного HTML-тега? - PullRequest
0 голосов
/ 25 апреля 2009

Извините, я очень плохо разбираюсь в регулярных выражениях, я наконец-то взломал все, чтобы работать в ruby. Я был бы признателен, если бы кто-то мог проинструктировать, как это сделать:

В основном я хотел удалить все \ n, когда они появляются в тегах ul.

while body =~ /<ul>.*(\n+).*<\/ul>/m
  body =~ /<ul>(.+)<\/ul>/m
  body.gsub!(
    /<ul>(.+)<\/ul>/m,
    "<ul>#{$1.gsub("\n","")}</ul>" )
end

Во 2-й строке у меня ушло на то, чтобы понять, так как $ 1 был из цикла while, а не из оператора gsub.

Спасибо!

1 Ответ

3 голосов
/ 25 апреля 2009

С TIMTOWTDI в regexp, но вот одна более короткая попытка:

body.gsub!(/<ul>.*?<\/ul>/m) {|m| m.tr("\n",'') }

В основном найдите (не жадно) все ul-теги и замените их на все удаленные переводы строк (проверьте RDoc для String.gsub! и String.tr )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...