Regex 正则表达式阻止多个“引用”&引用;

Regex 正则表达式阻止多个“引用”&引用;,regex,validation,Regex,Validation,我正试图做一个regex语句来验证电子邮件地址。 以下是我目前的声明: [a-z|A-Z|.]+@[a-z|A-Z]+\.[a-z]{3}\.[a-z]{2} 我一直试图阻止它连续接受多个句号。但是,它没有任何的。 我试过: \.(?!\.) 然而,它承认了第一点。作为所需的值,与该值无关?!消极前瞻。是否有人知道基本/简单的消极前瞻(或实现这一点的任何其他方式),并能够解释它的作用。 这将非常感谢:) 谢谢您可以尝试以下正则表达式: ^(?!.*\.\.)[a-zA-Z.]+@[a-zA-

我正试图做一个regex语句来验证电子邮件地址。 以下是我目前的声明:

[a-z|A-Z|.]+@[a-z|A-Z]+\.[a-z]{3}\.[a-z]{2}
我一直试图阻止它连续接受多个句号。但是,它没有任何的。 我试过:

\.(?!\.)
然而,它承认了第一点。作为所需的值,与该值无关?!消极前瞻。是否有人知道基本/简单的消极前瞻(或实现这一点的任何其他方式),并能够解释它的作用。 这将非常感谢:)
谢谢

您可以尝试以下正则表达式:

^(?!.*\.\.)[a-zA-Z.]+@[a-zA-Z]+\.[a-z]{3}\.[a-z]{2}$
我在开头添加了
(?!.\.\.\)
,以确保整个正则表达式没有连续的

说明:

  • ^你必须包括开始标记,这样你就不会得到任何部分 在您要查找的电子邮件中进行匹配
  • (?!.\.\。\)
    负前瞻正则表达式以确保 fullstop在任何位置都会跟随。*确保 寻找这样的发生直到字符串结束

  • 如果满足上述条件,即不存在此类重复 然后您提供的正则表达式生效。但是您已经在您的角色类中放置了
    [a-z | a-z |.]
    管道,该类也将包括管道作为有效输入。在字符类中,您不需要按管道分隔序列,因此
    [a-zA-Z.]
    就可以了

  • $确保前一场比赛的全部内容都是。。。所以 ^..…$开始和结束标记确保格式完全一致 匹配(无子匹配)

  • 如果我是你,我不会用regex验证电子邮件。请看:现在我开始讨论这个问题,尽管这不是最好的主意,但我希望看到它的结尾:d@之前的部分可以更改为
    [a-zA-Z]+(\.[a-zA-Z]+)*
    ,这将阻止多个连续点,以及@之前的点。当然,这假设您只需要电子邮件ID中的字母。请给出一个示例,您的正则表达式接受,但根据您的要求不应接受。验证电子邮件地址可以被视为一个已解决的问题-在这种情况下,请使用一个现有的、经过尝试和测试的解决方案,理想情况下,从验证库中——或者为了了解正则表达式如何工作,在这种情况下,这个问题可以简化为“如何使用正则表达式防止两个连续的相同字符?”——在这种情况下,这个问题已经得到了回答。第一次谷歌点击:。在这两种情况下,请不要让我们调试另一个电子邮件地址的正则表达式。请注意,这将允许在电子邮件ID中使用管道符号(在@之前)。即使这是允许的,它也是在@you is right之前的字符范围内冗余声明的,我实际上没有触及op的正则表达式部分,为您更新了答案@VasanThank you:)。我自己找到了一个解决方案,不过这一个比我允许的子匹配要好得多。