Замените / удалите пустые строки, используя gsub

У меня есть HTML-страница:

    <strong>

    Product Name:




</strong>

Я хочу лишить его пустых строк (^\n или же ^$). Ожидаемый HTML это:

    <strong>
    Product Name:
</strong>

Вот мой синтаксис:

r.gsub!(/^\\n/, '')

Это не похоже на работу. Я перепробовал много комбинаций, и я не могу заставить его что-либо делать. puts r.class => string а также r всегда есть пробелы в них. Я на самом деле пытаюсь больший набор сокращений:

r.gsub!(/\\n\s+?/, '').gsub!(/\\t\s+?/, '').gsub!(/^\\n/, '')

2 ответа

Кажется, проблема в том, что вы избегаете обратной косой черты, когда не должны быть. Например /\\n/ будет соответствовать строке \n, а не символ новой строки. /\n/ будет соответствовать символу новой строки. То же самое касается \t,

Если вы хотите поиграть с регулярными выражениями Ruby, я рекомендую проверить Rubular.

Кроме того, будьте осторожны с gsub!особенно цепляя их так. gsub! возвращается nil если ничего не заменено, и вы получите неопределенный метод для нулевой ошибки при последующих вызовах. Вам намного лучше с

r = r.gsub(...).gsub(...) ...

Я получил это на работу.

r = r.gsub(/\t\s+?/, "")
r = r.gsub(/^\s*$/, "")

"\n" может быть инкапсулирован \s*, $ не значит \n,

Другие вопросы по тегам