我发现其他几个帖子都在谈论这个问题,但仍然无法找到如何修复我的问题。这是我的代码:
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 :(得分:4)
有两种可能性。要么遇到与正则表达式相关的Python错误,要么在列表中有一组未转义的()
。无论哪种方式,确保您不会意外地匹配正则表达式模式可能是明智的。
你试过这个吗?
escaped = map(re.escape, words)
re.compile(r'\b%s\b' % '\\b|\\b'.join(escaped), flags=re.IGNORECASE)
所有这些都说,如果你的名单确实有1,600个元素,那么正则表达式也不是这项工作的最佳任务。