如何使这个正则表达式代码更有效?

时间:2015-05-15 15:38:58

标签: python regex

我正在从公司名称中删除法律表格,我的方法是使用正则表达式来匹配法律表格。代码如下所示:

    syn = [re.sub(r'\b' + form + r'\b', '', name).strip()
           for form in self.forms
           if re.search(r'\b' + form + r'\b', name)]

然而,由于有数百种法律形式,因此速度很慢。还有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

你应该预先编译你的正则表达式,因为它们有很多。 Python默认情况下会记住正则表达式,但是你的大数字会超过缓存大小。

另一种选择可能是对公司字符串进行标记,因为它可能不长。然后针对包含您的表单的set检查每个令牌。然后在最后加入令牌。

self.forms = (...)
tokens = company.split(' ')
return ' '.join([ t for t in tokens if t not in self.forms ])