Ненавижу расстраиваться из-за регулярных выражений, но ни один из других ответов не является строго правильным. Это будет работать:
str.gsub(/>\s*/, ">").gsub(/\s*</, "<")
Явное преобразование символов новой строки не требуется, поскольку /\s/
соответствует всем пробельным символам, включая символ новой строки. Регулярное выражение в других ответах не является строго правильным, потому что его регулярное выражение не соответствует "\r"
, которое используется в конце строк в Windows и будет появляться в электронных письмах.
Моя строка также преобразует <p> foo bar </p>
в <p>foo bar</p>
, но вы, возможно, этого не захотите.