Я вижу проблему в вашем регулярном выражении, которая может вызвать Катастрофическое возвращение назад .
^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\\.([a-zA-Z])+([a-zA-Z])+
^^^^^^^^^^^^^^^^^^^^^^
Что вы хотите сопоставить в отмеченной мной области?
Какдолжно ли регулярное выражение знать, к какой букве из второй группы следует применить?
Если у вас есть более длинная последовательность букв, которая может совпадать, регулярному выражению потребуется много шагов, чтобы сопоставить это ==> с вамиУ вас проблемы с производительностью, регулярное выражение просто не заканчивается вовремя!
Я бы сказал, что вы можете просто удалить последнюю группу, и регулярное выражение будет совпадать, но гораздо быстрее.
^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\\.([a-zA-Z])+