Мне нужно удалить все пробелы перед символом новой строки по всей строке.Удаление пробелов перед новыми линиями
string = """
this is a line \n
this is another \n
"""
выход:
string = """
this is a line\n
this is another\n
"""
Мне нужно удалить все пробелы перед символом новой строки по всей строке.Удаление пробелов перед новыми линиями
string = """
this is a line \n
this is another \n
"""
выход:
string = """
this is a line\n
this is another\n
"""
Вы можете разделить строку на строки, полосу от всех непечатаемых на справа, используя rstrip
, а затем добавить новую строку в конце каждой строки:
''.join([line.rstrip()+'\n' for line in string.splitlines()])
import re
re.sub('\s+\n','\n',string)
Edit: улучшенная версия от комментариев:
re.sub(r'\s+$', '', string, flags=re.M)
Как вы можете найти here,
Чтобы удалить все пробельные символы (пробел, табуляция, перевод строки, и так далее), вы можете использовать разделенное затем присоединиться:
sentence = ''.join(sentence.split())
или регулярное выражение:
import re
pattern = re.compile(r'\s+')
sentence = re.sub(pattern, '', sentence)
Но он не хочет заменять все пробелы. – kame
То, о чем вы говорите, это 'str.replace()' not 'str.sub()' – Ssein
OP не хочет удалять все пробелы в строке, только на концах строк. Ваше решение удаляет все пробелы, даже между словами в предложении. – jatinderjit
Если строка не заканчивается символом новой строки, это добавит ее (что может быть или не желательно). – ekhumoro
@ekhumoro Хорошее наблюдение. Такой подход можно использовать на срезе разделенных линий, который исключает последнее и обрабатывает последнее по-разному. Зависит от OP. –
Он работает, но оставляет строку в конце строки, как сказал эхуморо. поэтому я использую rstrip() для удаления этой новой строки. работает отлично. –