У меня есть скрипт Python, который использует несколько регулярных выражений для поиска через содержимое файла. Вот соответствующий фрагмент кода: < /p>
PATTERNS = {
"email": re.compile(r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b"),
"phone": re.compile(r"\b\d{3}-\d{3}-\d{4}\b"),
"date": re.compile(r"\b\d{4}-\d{2}-\d{2}\b")
}
for key, pattern in PATTERNS.items():
matches = pattern.findall(filecontent)
Here, PATTERNS is a dictionary where the key is the pattern's name, and the value is a precompiled regex object (created using re.compile).
< /code>
шаблоны < /strong> - это словарь, где ключ - это имя шаблона, а значение представляет собой предварительно скомпилированный объект Regex (созданный с использованием re.compile).
filecontent < /strong> содержит содержимое файла в виде одной строки.
Скрипт работает правильно, но занимает несколько минут для обработки каждого файла из -за большого размера файлов и количества шаблонов . < /p>
Есть ли способ ускорить это, либо перестройте код, либо используя более эффективную библиотеку или подход? Например, улучшит ли бы объединение шаблонов, параллельной обработки или других методов?>
Подробнее здесь: https://stackoverflow.com/questions/793 ... -in-python