Замените / удалите пустые строки, используя 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
,