2

我正在使用正则表达式模块的几种方法。我需要为多个编译模式设置超时,但尽管来自文档的示例,我无法重现执行以下操作的异常:

>>> import regex
>>> from time import sleep
>>> def slow_replace(m):
...     sleep(5)
...     return 'X'
...
>>> regex.sub(r'[a-z]', slow_replace, 'abcde', timeout=2)

它没有TimeoutError像预期的那样上升。

我在 Microsoft WSL2 中的 Ubuntu 20.04 LTS 上使用 python 3.8。我也发现了这个相关的问题,但它没有帮助。我该如何解决这个问题?

4

1 回答 1

-1

在 mac 操作系统上

import regex
import time
from time import sleep
def slow_replace(m):
    start = time.time()
    i = 0 
    while time.time()-start < 10:
        i += 1
    return 'X'

regex.sub(r'[a-z]', slow_replace, 'abcde', timeout=2)

按预期引发 TimeoutError 。

于 2021-08-12T19:50:19.363 回答