#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] )
^
Смотрите другую демонстрацию. Шаблон ^
будет привязан к началу строки.