Нет периода в первой части регулярного выражения - PullRequest
0 голосов
/ 11 февраля 2020

Это то, с чем я сейчас работаю: ((?i)(\w|^){0,25}[0-9]{3})[^\.]*@(gmail)\.com

Я пытаюсь заблокировать любое электронное письмо, содержащее любое количество символов, но с тремя цифрами, тянущимися за символами.

Это работает. ОДНАКО, когда Google создает имя пользователя для людей, он обычно выбирает firstname.lastname###@gmail.com. Я не хочу, чтобы письмо с точкой до @ gmail.com было включено.

Я играл и играл с этим выражением и не могу его получить. Так, например, john.doe123@gmail.com, выражение помечает все после точки. Мне нужно, чтобы регулярное выражение проверило ВСЮ электронную почту и проверило, соответствует ли оно выражению. Я знаю, что есть этот лакомый кусочек ^[^\.]*$, но я не знаю, где его поставить.

1 Ответ

0 голосов
/ 11 февраля 2020

Вы можете сопоставить символы 0-25 слов, за которыми следуют 3 цифры \w{0,25}[0-9]{3}, и использовать привязки для подтверждения начала ^ и конца $ строки.

^\w{0,25}[0-9]{3}@gmail\.com$

Regex demo

Если вы хотите использовать отрицательный класс символов [^, вы можете сопоставить 0-25 раз с любым символом, кроме символа пробела, @ или точки затем 3 цифры, используя [^\s@.]{0,25}[0-9]{3}

^[^\s@.]{0,25}[0-9]{3}@gmail\.com$

Regex demo

...