У меня есть следующая строка, которая должна очиститьКак очистить строку, используя регулярное выражение питона
#import re
addr="abcd&^fhj"
problemchars = re.compile(r'[=\+/&<>;\'"\?%#[email protected]\,\. \t\r\n]')
re.search(problemchars,addr)
У меня есть следующая строка, которая должна очиститьКак очистить строку, используя регулярное выражение питона
#import re
addr="abcd&^fhj"
problemchars = re.compile(r'[=\+/&<>;\'"\?%#[email protected]\,\. \t\r\n]')
re.search(problemchars,addr)
В этом случае использование re.sub
ищущего \W
(не-alphanum) и заменить ничем.
import re
addr="abcd&^fhj"
print(re.sub("\W","",addr))
("\W+"
тоже работает, но не уверен, что это будет более производительным)
вы можете использовать функцию фильтра, а если вы не хотите, чтобы пойти с регулярным выражением
line = "abcd&^fhj"
line = filter(str.isalpha, line)
print line # Change for python3
Выход:
Редактировать: Для python 3 вы можете изменить инструкцию печати, такую как это, так как функция filter
возвращает итерабельность.
print(''.join(list(line)))
это приятный штрих. Пожалуйста, предоставьте совместимый с Python 3.x код: Я имею в виду 'line =" ".join (filter (str.isalpha, line))', потому что 'filter' не вернет строку, но итерабельную. –
Вы хотите удалить символы без алфавита? –
@ Jean-FrançoisFabre да –
что именно вы хотите достичь? – Harsha