대용량의 정적 정규 표현식을 포함하는 파이썬 파일을 가져올 때마다 메모리의 대표적인 상태 머신으로 문자열을 컴파일하는 데 CPU 사이클이 소요됩니다.컴파일 된 정규식 개체를 파이썬으로 캐싱 하시겠습니까?
a = re.compile("a.*b")
b = re.compile("c.*d")
...
질문 : 각 수입에 정규식 컴파일을 실행하는 것을 방지하기 위해 미리 컴파일 된 방식으로 디스크의 캐시에 이러한 정규 표현식을 저장할 수 있습니까?
>>> import pickle
>>> import re
>>> x = re.compile(".*")
>>> pickle.dumps(x)
"cre\n_compile\np0\n(S'.*'\np1\nI0\ntp2\nRp3\n."
그리고 re
객체가 unmarshallable은 다음과 같습니다 : 각 모듈의 수명 동안 한 번만 자체를 초기화하는 것이
>>> import marshal
>>> import re
>>> x = re.compile(".*")
>>> marshal.dumps(x)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: unmarshallable object
슬프게도, 내 응용 프로그램 (900 정규식 및 계산)에도이 문제가 있습니다. 불행히도이 스레드에는 해결책이 없습니다. –