Как я могу белый список символов из строки в Python 3? - PullRequest
0 голосов
/ 16 мая 2019

Мой вопрос довольно прост, я пытаюсь удалить любой символ, который не является AZ или 0-9 из строки.

По сути, это процесс, который я пытаюсь сделать:

whitelist=['a',...'z', '0',...'9']

name = '_abcd!?123'

name.strip(whitelist)

print(name)

>>> abcd123

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

Ответы [ 3 ]

2 голосов
/ 16 мая 2019

Вы можете использовать re.sub и предоставить шаблон, который точно соответствует тому, что вы пытаетесь удалить:

import re
result = re.sub('[^a-zA-Z0-9]', '', '_abcd!?123')

Вывод:

'abcd123'
1 голос
/ 16 мая 2019

Вы можете использовать простое регулярное выражение:

new_string = re.sub('[chars to remove]', '', old_string)

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

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

Использование string с пониманием списка

import string
whitelist = set(string.ascii_lowercase + string.digits)
name = ''.join(c for c in name if c in whitelist)
...