Удалить / заменить все пробелы из многострочной строки, за исключением символов новой строки

#python #regex #newline #whitespace #removing-whitespace

#python #регулярное выражение #новая строка #пробелы #удаление-пробел

Вопрос:

Я хочу удалить все пробельные символы из многострочной строки с помощью регулярного выражения. То, что я ищу, это что-то вроде:

 exp = re.compile("s-[rn]")
exp.sub('', text)
  

Существует ли регулярное выражение, которое выполняет вышеуказанное. Поскольку text это Unicode, в котором возможны другие символы, которые могли бы помимо s этого [tvf rn] класса образовывать [tvf ] класс, я не могу использовать, ,.

Комментарии:

1. Кстати — я не разбираюсь в Python, но разве вы не должны использовать re.U ?

2. О re.U , я думал, что python использовал это автоматически, когда вводимый текст был в юникоде. Прямо сейчас все мои данные на английском языке, поэтому я не знаю, есть ли какой-либо другой символ пробела, кроме указанного выше. Я только что наткнулся на список символов в s из документа python. Я действительно пытался использовать упомянутое регулярное выражение [tvf ] для своих нужд, когда возник вопрос о юникоде. Если вы знаете какой-либо символ пробела в Юникоде, кроме указанного выше, пожалуйста, дайте мне знать, и я проверю, нужно ли мне использовать re.U или нет.

Ответ №1:

Попробуйте этот класс символов с двойным отрицанием:

 [^Srn]
  

Пример: http://rubular.com/r/t2Ahjs9UzF