Удаление непечатаемыемых специальных символов и знаков из слов через regex
Есть текст, например:
Twenty-five years have passed since the 1991 incident in which Indian army soldiers allegedly raped between 23 and 100 women in Kashmir2"!s Kunan and Poshpora villages during a search operation.
но в нём есть неотображаемые символы. Как с помощью регулярных выражений написать правило для re, чтобы удалить эти символы. Эти символы могут быть как внутри слова, так и просто отдельно от них. Стандартный re.sub(r'\W', ' ', str(X[sen])) не избавляет от них. Код символов что-то около x04.
З.Ы. Конечно при опубликовании эти символы не видно, представьте, что в слове "Kashmir2" перед двойкой в текстовом редакторе несколько квадратиков написано :)
Ответы (1 шт):
В регулярках есть выражениe, чтобы искать 8-ми битные коды.
Код символов что-то около x04
Если у вас только этот код, то убрать его можно через \x04.
Если их больше, то можно написать выражение для поиска всех нечитаемых символов через диапазоны:
[\x00-\x1F\x7F-\xFF]— убрать все символы в диапазонах 0-31, 127-255
соответствует 7 bit ASCII[\x00-\x1F\x7F]— убрать все символы в диапазоне 0-31 и 127-ой
соответствует 8 bit ASCII[\x00-\x1F\x7F\xA0]/u— для UTF-8
Подробнее здесь на английском stack overflow.
В Вашем конкретном случае подойдёт любой из представленных вариантов.
