优化 Python 3 中的正则表达式替换
在您的场景中,您的目标是对大量字符串执行正则表达式替换,并添加确保替换仅发生在字边界的复杂性。虽然使用嵌套循环的基本正则表达式方法可能会很慢,但还有更有效的解决方案。
使用 str.replace 方法
str.replace 方法可以提供显着的效果与正则表达式相比,速度有所提高。但是,要强制执行字边界替换,您可以在 str.replace 参数中使用正则表达式:
sentence = sentence.replace(r'\b' + word + r'\b', '')
此方法将 str.replace 的速度与正则表达式的字边界强制结合起来。
优化re.sub方法
如果你更喜欢使用re.sub方法,有优化其性能的技术:
使用 Trie 的示例实现
import re import trie banned_words = ['word1', 'word2', ...] trie_obj = trie.Trie() for word in banned_words: trie_obj.add(word) trie_regex = r"\b" + trie_obj.pattern() + r"\b" pattern = re.compile(trie_regex) for sentence in sentences: sentence = pattern.sub('', sentence)
这种方法利用 Trie 的速度进行单词边界匹配,显着减少大型数据集的处理时间。
以上是如何优化 Python 3 中的正则表达式替换以提高速度和单词边界准确性?的详细内容。更多信息请关注PHP中文网其他相关文章!