[英][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.search
已re.search
,用.*
开始你的模式只会意味着它总是匹配,大字符串的每个字符都可以成为候选者......你需要改进你的正则表达式,或者使用re.match
而不是re.search
。
另外 - 你在错误的地方使用^
我相信,它可以表示换行符的开始,(在这种情况下你需要将多行标志re.MULTILINE
传递给编译器/正则表达式)或者它意味着“不是”当用于字符集。
您应该将正则表达式更改为以下内容:
r'string [^=]*=.*'
这样说,寻找单词“string”后跟一个空格,然后任意数量的字符=
then =
then。 此外 - 您可能希望使用+
而不是*
因为*
也可以表示0匹配,其中+
至少需要1个字符。
但是如果没有更多关于你的信息 - 很难说出究竟需要什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.