在实现正则表达式期间面临的问题



>场景:

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

面临的问题:

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

下面是正则表达式:

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

所需结果:

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

A. 约翰·马约尔

B. 迈克尔·克拉克

C.吉腾德拉123.古隆

等等。

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

约翰

b. jitendra@

c. john@gmail.com

等等。

我需要在上面尝试的正则表达式中进行哪些更正才能达到预期的结果?

非常感谢您的建议。

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

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

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

  1. ^w+[.]w+$按照@Onyambu的建议

  2. ^(?!.*@)[a-z0-9]+.[a-z0-9]+$按照@Theforthbird的建议

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

最新更新