sách gpt4 ai đã đi

[Python]: Python re. Tối ưu hóa tốc độ tìm kiếm cho các dòng chuỗi dài

In lại 作者:行者123 更新时间:2023-11-30 23:30:56 39 4
mua khóa gpt4 Nike

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

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分钟或更短吗?根据此处其他人的反馈,将这一长行拆分为字符串列表不会对执行时间产生任何重大影响。任何想法都将不胜感激。提前致谢!

1 Câu trả lời

re.search 已经逐个字符地进行,以 .* 开头的模式仅意味着它将始终匹配并且每个字符大字符串的 可以作为候选...您需要改进正则表达式,或使用 re.match Còn hơn là re.search.

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

您应该将正则表达式更改为如下所示:

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

这就是说,查找单词“string”,后跟一个空格,然后是任意数量的不是 = 的字符,然后是 = ,然后是任何内容。另外 - 您可能需要使用 + Còn hơn là *,bởi vì * 也可以表示 0 个匹配,其中 + 需要至少 1 个字符。

但是如果您没有更多信息 - 很难判断到底需要什么。

关于python - [Python] : Python re. 长字符串行的搜索速度优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20236775/

39 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com