Как я могу удалить нежелательные символы из строки в Python?

1

У меня есть следующая строка:

text = 'adsfklaiin2007daf adf adflkajf;j 2008afadfkjkj'

Я хочу вернуться:

2007 2008

Как это сделать в Python?

  • 0
    проверьте этот ответ: stackoverflow.com/questions/1450897/…
  • 0
    Что, если это конкретный текст, который я хочу сохранить. Это может быть число, но это не так. Например, что, если я хочу сохранить 2007d 2008a или какую-то другую строку текста?
Теги:
string
text

4 ответа

3
Лучший ответ
>>> import re
>>> text = 'adsfklaiin2007daf adf adflkajf;j 2008afadfkjkj'
>>> re.sub("[^0-9]"," ",text)
'          2007                   2008         '

Я оставлю его вам для форматирования вывода.

7

Это классический случай для регулярных выражений. Используя библиотеку re python, вы получите:

re.findall('\d{4}', "yourStringHere")

Это вернет список всех четырехзначных элементов, найденных в строке. Просто отрегулируйте свое регулярное выражение по мере необходимости.

5
import re
num = re.compile('[\d]*')
numbers = [number for number in num.findall(text) if number]
['2007', '2008']
1

str.translate

text.translate(None, ''.join(chr(n) for n in range(0xFF) if chr(n) not in ' 01234567890')

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню