2016-11-17 1 views
0

Я нашел пару других сообщений, которые говорили об этой проблеме, но до сих пор не смогли выяснить, как исправить мою проблему. Вот мой код:Регулярное выражение Python вызывает ошибку «ничего не повторить»

words = [':\)','sleeping','... :\(','facebook','tired','out of the',"i'm"] 
regex = re.compile(r'\b%s\b' % '\\b|\\b'.join(words), flags=re.IGNORECASE) 

Я получаю эту ошибку:

error: nothing to repeat 
+0

Ваш список 'words' не объявлен должным образом. –

+0

regex re.compile line отлично выглядит для меня – Skycc

+0

Как его исправить? @RohanAmrute – msmazh

ответ

3

Есть две возможности. Либо вы работаете с ошибкой Python, связанной с вашим регулярным выражением, либо у вас есть неограниченный набор () внутри вашего списка. В любом случае, убедитесь, что вы случайно не соответствуете шаблону регулярного выражения, вероятно, были бы разумными.

Вы пробовали это вместо этого?

escaped = map(re.escape, words) 
re.compile(r'\b%s\b' % '\\b|\\b'.join(escaped), flags=re.IGNORECASE) 

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

+0

Да, я пробовал это решение, и он работал довольно хорошо – msmazh

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