在非常大的文件上缓慢/挂起python正则表达式

时间:2014-07-30 04:42:20

标签: python regex

我正在写一些python,涉及搜索内存转储以寻找潜在的URL。该程序似乎对我来说很好,但测试它的用户表示它至少连续两天挂在这段代码上:

#carve urls
print "\nCarving potential URLs from correlated strings."
pattern = re.compile(ur'(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?\xab\xbb\u201c\u201d\u2018\u2019]))')
with open(outputPath+"\\strings\\correlatedstrings.txt", "r") as fstring:
    with createFile(outputPath+"\\strings", "urlSearch") as f:
        for stringline in fstring:
            if pattern.search(stringline):
                f.write(stringline)

正则表达式是我在网上找到的那个(可能在SO上)。它对我来说似乎非常好。这里的潜在问题是该用户搜索的内存转储高达32GB。在极大文件上使用正则表达式或我的代码是否有问题?任何想法都会非常有用:)。

0 个答案:

没有答案