Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在学习 MIT OCW 的算法课程。在一次讲座中提到,我们在使用 re.findall 时必须小心,因为 re 通常可以是指数复杂度算法。在解析大文件或数据集时,这是一个问题吗?是否有替代正则表达式的方法来有效地从数据中提取模式?
这取决于你想做什么。
通常,使用完成任务所需的最简单工具。
in我想,会比正则表达式更有效,但不允许通配符、重复等。如果您要查找的模式都在一行上,您可以一次搜索一行,处理每一行(并将其从内存中取出)在下一行之前。如果您正在寻找字符串的开头或结尾,他们使用mystring.startswith()or mystring.endswith()- 这些更有效。
in
mystring.startswith()
mystring.endswith()
您也许可以将数据拆分为更易于管理的块。
如果您想要多行搜索,而不是在开头或结尾,并且包含通配符或重复...您可能会遇到正则表达式。