Python заменяет непечатаемые символы, кроме разрыва строкиPython

Программы на Python
Ответить
Гость
 Python заменяет непечатаемые символы, кроме разрыва строки

Сообщение Гость »


Я пытаюсь написать функцию, которая заменяет непечатаемые символы пробелом, это работает хорошо, но она также заменяет разрыв строки \n пробелом. Не могу понять почему.

Тестовый код:

импортировать повторно защита replace_unknown_characters_with_space(input_string): # Заменить непечатаемые символы (включая escape-последовательности) пробелами # Согласно ChatGPT, \n не должен находиться в этом диапазоне очищенная_строка = re.sub(r'[^\x20-\x7E]', '', input_string) вернуть очищенную_строку защита основной(): test_string = "Это тестовая строка с некоторыми непечатаемыми символами:\nHello\x85World\x0DThis\x0Ais\x2028a\x2029test." print("Исходная строка:") печать (test_string) очищенная_строка = replace_unknown_characters_with_space(test_string) print("\nОчищенная строка:") печать (очищенная_строка) если __name__ == "__main__": основной() Выход:

Исходная строка: Это тестовая строка с некоторыми непечатаемыми символами: Привет Этод это 28а 29тест. Очищенная строка: Это тестовая строка с некоторыми непечатаемыми символами: Hello World. Это 28a 29test. Как видите, разрыв строки перед Hello World заменяется пробелом, что не предусмотрено. Я пытался получить помощь от ChatGPT, но его решения по регулярным выражениям не работают.

Мой последний вариант — использовать цикл for и использовать встроенный в Python метод isprintable() для фильтрации символов, но это будет намного медленнее по сравнению с регулярным выражением.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»