繁体   English   中英

[Python]:用于长字符串行的Python re.search速度优化

[英][Python]: Python re.search speed optimization for long string lines

我将问一下如何加速对python的重新研究。
我有一个很长的字符串行,长度为176861(即带有一些符号的字母数字字符),我使用此函数测试了此行以进行re.search:

def getExecTime():
   start_time = time.time()
   re.search(r'.*^string .*=.*', temp)
   stop_time = time.time() - start_time
   print "Execution time is : %s seconds" % stop_time

平均结果是~414秒(大约6到7分钟)。 无论如何,我可以减少这个,大约在2分钟左右? 根据此处其他人的反馈,将此长行拆分为字符串列表不会对执行时间产生任何重大影响。 任何想法都非常感谢。 提前致谢!

re.searchre.search ,用.*开始你的模式只会意味着它总是匹配,大字符串的每个字符都可以成为候选者......你需要改进你的正则表达式,或者使用re.match而不是re.search

另外 - 你在错误的地方使用^我相信,它可以表示换行符的开始,(在这种情况下你需要将多行标志re.MULTILINE传递给编译器/正则表达式)或者它意味着“不是”当用于字符集。

您应该将正则表达式更改为以下内容:

r'string [^=]*=.*'

这样说,寻找单词“string”后跟一个空格,然后任意数量的字符= then = then。 此外 - 您可能希望使用+而不是*因为*也可以表示0匹配,其中+至少需要1个字符。

但是如果没有更多关于你的信息 - 很难说出究竟需要什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM