Сложность
Ваша задача звучит так, как будто это не менее O (N), где N - количество записей, которые вы должны обработать.Если вы отфильтровываете N из M общих записей (например, 1M записей из 1B общего количества, то это будет O (M), если M записей уже не проиндексированы или не сохранены в соответствующей структуре данных (например, trie *)1004 *).
Время настенных часов
Хорошая новость заключается в том, что обработка 1M записей с использованием строковых операций должна занимать относительно небольшое время настенных часов (в худшем случае, секунд).
IРекомендуется извлекать записи по 10 КБ и анализировать их время, чтобы получить приблизительную оценку общей стоимости обработки.
Предостережения
Регулярное выражение - хороший механизм фильтрации, если "язык"допустимые (или недействительные) записи четко определены.
Если вы применяете регулярное выражение для неанизированных данных клиента, остерегайтесь отказа в обслуживании с помощью регулярных выражений. Подробнее см. мой пост здесь .