正则表达式执行过程中遇到的问题

Issue faced during the implementation of the regex expression

场景:

我试过的正则表达式不应该允许包含'@'字符的表达式。我已经成功地实施了它。但是,它应该包含“。”两个字符之间必须有点符号。

面临的问题:

此正则表达式允许不带“.”的字符点符号。

这是正则表达式:

 ^([a-z0-9]*([.])*([a-z0-9]))+(?!@)(?!gmail.com)+$

要求的结果:

1.上面的正则表达式应该允许以下表达式:

一个。 john.mayor

b。 michael.clarke

c。 jitendra123.gurung

等等。

2。但它不应该允许以下表达式:

一个。约翰

b。 jitendra@

c。约翰@gmail.com

等等。

我在上面尝试过的正则表达式中需要什么修正才能达到预期的结果?

非常感谢您的建议。

您可以使用您指定的字符 class [a-z0-9]+ 并使用 + 匹配该字符一次或多次,以确保至少有一个 [a-z0-9] 点前后。

^[a-z0-9]+\.[a-z0-9]+$

我找到了@Onyambu 和@Theforthbird 建议的两个最相关的答案,我已在下面发布:

  1. ^\w+[.]\w+$ 根据@Onyambu

  2. 的建议
  3. ^(?!.*@)[a-z0-9]+\.[a-z0-9]+$ 根据@Theforthbird

  4. 的建议

两者都符合我要求的验证。让我知道哪个更好。