Есть три типа концов строк, с которыми мы обычно сталкиваемся: \n
, \r
и \r\n
. Довольно простое регулярное выражение в re.sub
, а именно r"\r?\n?$"
, может перехватить их все.
(И мы должны поймать их всех , я прав?)
import re
re.sub(r"\r?\n?$", "", the_text, 1)
С последним аргументом мы ограничиваем количество заменяемых событий одним, в некоторой степени имитируя chomp. Пример:
import re
text_1 = "hellothere\n\n\n"
text_2 = "hellothere\n\n\r"
text_3 = "hellothere\n\n\r\n"
a = re.sub(r"\r?\n?$", "", text_1, 1)
b = re.sub(r"\r?\n?$", "", text_2, 1)
c = re.sub(r"\r?\n?$", "", text_3, 1)
... где a == b == c
равно True
.