Python正则表达式引发了“无需重复”的错误

时间:2016-11-17 05:37:37

标签: python regex

我发现其他几个帖子都在谈论这个问题,但仍然无法找到如何修复我的问题。这是我的代码:

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

1 个答案:

答案 0 :(得分:4)

有两种可能性。要么遇到与正则表达式相关的Python错误,要么在列表中有一组未转义的()。无论哪种方式,确保您不会意外地匹配正则表达式模式可能是明智的。

你试过这个吗?

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

所有这些都说,如果你的名单确实有1,600个元素,那么正则表达式也不是这项工作的最佳任务。