优化python正则表达式搜索

时间:2018-05-03 22:51:29

标签: python regex string optimization tree

代码

def search(self, arg1, arg2):
    global ipv4_regex, type_regex

    if isinstance(arg2, type_regex):
        text = re.search(arg2, arg1)
        if text:
            p = text.group()
            return len(p)
        else:
            return 0
    else:
        if arg2 in arg1:
            return len(arg2)
        else:
            return 0

我有一个python脚本,为了提供一个请求,这个函数重新计算大约452900次(通过使用pprofile进行代码分析找到这个值),以给出输出。

关于功能的一些注意事项:

arg1 = string
arg2 = ith string/regex

基本上,arg2是需要与ith匹配的一长串正则表达式/字符串的arg1实例(arg1对于一个请求保持不变),以便找到匹配的长度

我想出了这个功能,但时间& CPU消耗正成为我的瓶颈。由于许多搜索操作,CPU很快就会很高。

到目前为止我的想法是什么

  1. 使用词典理解而不是here
  2. 建议的if-else
  3. 使用某种基于树的搜索,就像我们对字符串一样。
  4. 这些想法到目前为止都是简单的想法,我无法将它们付诸行动。

    我无法控制arg2中的正则表达式,所以正则表达式优化在这里没有帮助。

    请建议,我正在寻找关于如何优化此功能的想法?

    由于

0 个答案:

没有答案