2013-10-09 3 views
0

Почему .strip() не удаляет пунктуации при использовании, как показано ниже, способ translate()?Зачистка пунктуации с использованием Python .strip()

s = 'Hello world! Good-bye world?' 
s = s.strip(string.punctuation + string.whitespace).lower() 

дает: 'hello world! good-bye world'

s = translate(None, string.punctuation) 

дает: hello world goodbye world

+3

Прочитайте документы ;-) Strip работает только на концах строк, а не на интерьерах строк. –

ответ

0

Если вы хотите хороший инструмент языка вы можете также использовать NLTK. Очень эффективно работает над чем-то подобным, и если вы хотите улучшить, вы можете использовать токенизатор.

0

Существует хорошее обсуждение этой темы на следующей теме: Best way to strip punctuation from a string in Python

Одно решение, которое я нашел там:

re.sub('[%s]'%(re.escape(string.punctuation)),' ', s1) 

Если вы хотите заменить ни с чем - сжатие в пунктуация то делать :

re.sub('[%s]'%(re.escape(string.punctuation)),'', s1) 

Мы строим класс персонажей, чтобы избежать знаков пунктуации. Затем sub любой из них с пространственным символом.

Смежные вопросы