Удалите все специальные символы из текста, кроме "\ n" и "/" - PullRequest
2 голосов
/ 23 мая 2019

Из этого поста я узнал, как удалить из текста все, кроме пробелов и буквенно-цифровых символов: Python: убрать все, кроме пробелов и буквенно-цифровых символов .

Таким образом:

re.sub(r'([^\s\w]|_)+', '', document)

Я хотел удалить все специальные символы.

Однако теперь я хочу сделать то же самое (то есть удалить все специальные символы), но без удаления следующих специальных символов:

  1. \ п
  2. /

Как мне это сделать?

Ответы [ 2 ]

1 голос
/ 23 мая 2019

Мы можем попытаться переписать ваш шаблон без использования жестких классов символов:

document = "Hello!@#$/ World!"
output = re.sub(r'[^ \nA-Za-z0-9/]+', '', document)
print(output)

Hello/ World

Это говорит об удалении любого символа, который не является буквенно-цифровым, пробелом, символом новой строки или косой чертой.

0 голосов
/ 23 мая 2019

Возможно, мне не хватает полного варианта использования, но вы можете сделать это без regex:

s = "test\r\n\\ this\n"
s = ''.join(char for char in s if char.isalnum() or char in {'\\', '\n', ' '})
print(s)

.isalnum() обрабатывает большинство буквенно-цифровых символов, включая юникод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...