正则表达式的第一部分没有句点

No period in first part of regular expression

这是我目前正在使用的: ((?i)(\w|^){0,25}[0-9]{3})[^\.]*@(gmail)\.com

我试图做的是阻止任何包含任意数量字符但字符后跟 3 个数字的电子邮件。

这行得通。但是,当 Google 为人们创建用户名时,它通常会选择 firstname.lastname###@gmail.com。我不希望包含 @gmail.com 之前带有句点的电子邮件。

这个表情我玩啊玩啊,怎么也搞不定。因此,例如 john.doe123@gmail.com,表达式在句点之后标记所有内容。我需要正则表达式来检查整个电子邮件并检查它是否遵循表达式。我知道有这个花絮 ^[^\.]*$ 但我不知道放在哪里。

您可以匹配 0-25 个单词字符后跟 3 个数字 \w{0,25}[0-9]{3} 并使用锚点断言字符串的开头 ^ 和结尾 $

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

Regex demo

如果你想使用 negated character class [^ 你可以匹配 0-25 次匹配任何字符,除了空白字符,@ 或一个点后跟 3 个数字使用 [^\s@.]{0,25}[0-9]{3}

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

Regex demo