Python - сохранить только буквенно-цифровой и пробел, и игнорировать не-ASCII - PullRequest
1 голос
/ 29 апреля 2019

У меня есть эта строка для удаления всех не алфавитно-цифровых символов, кроме пробелов

re.sub(r'\W+', '', s)

Хотя, она по-прежнему содержит не английские символы.

Например, если у меня есть

re.sub(r'\W+', '', 'This is a sentence, and here are non-english 托利 苏 !!11')

Я хочу получить в качестве вывода:

> 'This is a sentence and here are non-english  11'

Ответы [ 2 ]

5 голосов
/ 29 апреля 2019
re.sub(r'[^A-Za-z0-9 ]+', '', s)

(Изменить) Чтобы уточнить: [] создает список символов. ^ отрицает список. A-Za-z - английский алфавит, а - пробел. Для любого одного или нескольких из них (т. Е. Всего, что не является A-Z, a-z или пробелом), замените его пустой строкой.

0 голосов
/ 29 апреля 2019

Однажды у меня возникла именно эта проблема, единственное отличие заключалось в том, что я не мог ничего импортировать или использовать регулярные выражения.

Чтобы решить мою проблему, я создал список, содержащий все значения, которые я хотел сохранить:

values = list("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ")

Затем я создал функцию, которая будет перебирать каждый элемент в строке и, если его нет в списке values, он удалит (заменит) его из строки:

def remover(my_string = ""):
  for item in my_string:
    if item not in values:
      my_string = my_string.replace(item, "")
  return my_string

Например, следующий код:

print(remover("H!e£l$l%o^ W&o*r(l)d!:)"))

Должен вывести:

'Hello World'

Конечно, это не лучший способ сделать это, но учитываяобстоятельства, это был быстрый и простой способ выполнить работу.

ПРИМЕЧАНИЕ: Вы можете заменить элементы, которые являются в values список путем изменения if item not in values на if item in values.

ПРИМЕЧАНИЕ: Мне не разрешено использовать строковые константы , поскольку пакет string долженимпортироваться, чтобы использовать их.

Удачи.

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