В вашем регулярном выражении есть потенциальная скрытая проблема:
([a-zA-Z0-9.-_+]+@[a-zA-Z0-9.-]+\.[a-z]{2,10}
Если вы внимательно посмотрите на первый класс символов, вы увидите, что дефис определяет диапазон от .
до _
. Это может быть непреднамеренно включая символы, которые вы не хотите. Попробуйте переместить дефис в конец класса символов:
([a-zA-Z0-9._+-]+@[a-zA-Z0-9.-]+\.[a-z]{2,10}
Вот демоверсия регулярного выражения для [a-zA-Z0-9.-_+]
до и после . Обратите внимание, что @
и ^
сопоставлялись в исходной версии, но затем перестали сопоставляться после перемещения -
в конец класса.