Регулярное выражение для поиска шаблона адреса электронной почты

#regex

#регулярное выражение

Вопрос:

У нас есть приложение, которое, как мы подозреваем, регистрирует адреса электронной почты для рассылки спама / clickfarm. Многие из них следуют шаблону:

  • firstName:number:lastName@example.com

Например,

  • tommy8512shira@example.com
  • tommy785young@example.com
  • tommy3265schmitt@example.com

Регулярное выражение

/(w )(d )(w )/g приближает меня к тому, что я хочу, но также фиксирует числа в конце строки

Комментарии:

1. Нравится /(w ?)(d )(w )/g ? Какие числа находятся в конце строки?

2. Это ближе, но все же захватывает такие, как someguy5649866@example.com

3. Тогда /([^Wd] )(d )([^Wd] )/g должно сработать.

4. Ты качаешься. Спасибо.

Ответ №1:

Класс w сокращенных символов также сопоставляет цифры и буквы. Вы можете либо заменить его, [a-zA-Z] либо вычесть цифры, используя обратный класс символов — [^Wd] .

Используйте либо

 ([a-zA-Z] )(d )([a-zA-Z] )
  

(см. демонстрацию) или привязанную версию:

 ^([^Wd] )(d )([^Wd] )
^
  

Смотрите другую демонстрацию. Шаблон ^ будет привязан к началу строки.