Как я могу удалить нежелательные символы из строки в Python? - PullRequest
1 голос
/ 26 апреля 2011

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

text = 'adsfklaiin2007daf adf adflkajf;j 2008afadfkjkj'

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

2007 2008

Любой способ сделать это в Python?

Ответы [ 4 ]

7 голосов
/ 26 апреля 2011

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

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

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

5 голосов
/ 26 апреля 2011
import re
num = re.compile('[\d]*')
numbers = [number for number in num.findall(text) if number]
['2007', '2008']
3 голосов
/ 26 апреля 2011
>>> import re
>>> text = 'adsfklaiin2007daf adf adflkajf;j 2008afadfkjkj'
>>> re.sub("[^0-9]"," ",text)
'          2007                   2008         '

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

1 голос
/ 26 апреля 2011

str.translate

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

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

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