파이썬에서 웹 트래픽을 검사하는 정규 표현식 정규 표현식을 사용합니다. 문제는 페이지가 1MB보다 크고 단일 문자열로 구성되어있는 경우 정규식 완료까지 걸리는 경우가 종종 있습니다. 최대 실행 시간 제한을 설정하는 방법이 있는지 궁금하네요?파이썬 최대 실행 시간 초과 또는 정규식 가속화
내 스크립트 파일에서 정규 표현식에를 읽은 다음 그들에게 한 번에 하나씩 처리합니다
def match_keywords_add_to_es(pastes):
match_list = get_re_match_list()
for paste in pastes:
log.info("matching %s"%paste["key"])
for match in match_list:
matched = match[1].findall(paste["raw"].lower())
if len(matched) > 0:
try:
paste["keywords"] = match[0]
res_paste = Paste(dictionary=paste)
Paste.add_paste(res_paste)
except Exception,e:
log.error("Failed to add the paste "+str(paste)+" with error %s"%e)
예는 정규 표현식에 : 나는 하나의이 부분에 초점을 맞출거야
secret_key:
match: .*secret(_)?key\s*=\s*(.*)?[A-Za-z0-9\/]{40}(.*)?.*
access_key:
match: .*access(_)?key\*=\*(.*)?[A-Z0-9]{20}(.*)?.*
example.com:
match: .*example\.com.*
당신이 시도한 방법을보기 위해 코드를 보여주십시오. –
@ MarkoMackic included –
정규 표현식을 볼 수 없다면 정규 표현식을 더 빠르게 만들 수 없습니다. 그러나 정규 표현식이 너무 많은 시간을 들여야한다는 것을 알아 내면 도움이 될 것입니다. – Kevin