Javascript [A-Z]{2,4}不限于2&;4个字符

Javascript [A-Z]{2,4}不限于2&;4个字符,javascript,ruby,regex,posix,pcre,Javascript,Ruby,Regex,Posix,Pcre,这个正则表达式在任何方面都适合我的需要,除了它允许电子邮件,如jim@f.com. 上面说这是一对。如果我没弄错的话,[A-Z]后面的{2,4}不是意味着它必须在2到4个字符之间吗?这可能是因为争吵、博物馆和旅行的问题吗?我已经在我的应用程序中验证了这些是允许的,还有一些,我还不清楚我是否正确地执行了PCRE和POSIX。我担心他们可能都是PCRE,我太可笑了。另外,JavaScript是POSIX,Ruby是PCRE。因此,如果我没有做到这一点,请让我放松下来,这是一个漫长的夜晚,我进进出出地

这个正则表达式在任何方面都适合我的需要,除了它允许电子邮件,如jim@f.com. 上面说这是一对。如果我没弄错的话,[A-Z]后面的{2,4}不是意味着它必须在2到4个字符之间吗?这可能是因为争吵、博物馆和旅行的问题吗?我已经在我的应用程序中验证了这些是允许的,还有一些,我还不清楚我是否正确地执行了PCRE和POSIX。我担心他们可能都是PCRE,我太可笑了。另外,JavaScript是POSIX,Ruby是PCRE。因此,如果我没有做到这一点,请让我放松下来,这是一个漫长的夜晚,我进进出出地学习正则表达式,我试图让自己看起来很糟糕。:)

确实如此,但它仅应用于顶级域名(示例中的“com”)。

Ruby正则表达式文档:

  • Ruby 1.8:
  • Ruby 1.9:

    • POSIX不支持非捕获组
      (?:组)
      ,因此您的两个正则表达式都不是POSIX。JavaScript不使用POSIX。JavaScript正则表达式是Perl风格的,但它没有所有的特性。查看我网站上的详细信息。

      顺便问一下,我对PCRE=Ruby和POSIX=Javascript的看法是否正确?不,Ruby没有Perl regexp,它有Ruby regexp。更准确地说:Ruby1.8有Ruby1.8regexps,Ruby1.9有Ruby1.9regexps,两者有很大不同。Ruby1.8的Regexp是一个完全独立的实现,Ruby1.9基于Oniguruma Regexp引擎的一个经过大量修改的分支。Ruby 1.8和Oniguruma都不是基于任何东西的,当然他们各自的作者都知道Friedl书(掌握正则表达式)、PCRE、Perl、POSIX BRE和ERE等等。非常感谢Jörg,我知道PCRE是Perl RegExps,但我认为它是像POSIX一样的标准。我不知道那本书,你读过吗?我刚刚开始真正了解regexp的功能。假期计划:)想知道我是否需要自己去拿那本书吗?弗里德尔的书好极了。如果你想深入了解正则表达式的细节,这本书适合你。要获得更实用的方法,请查看或阅读Jan Goyvaerts/Steve Levithan的“正则表达式食谱”。Javascript正则表达式基于Perl,而不是POSIX。我不知道它是否与PCRE完全相同,但至少是相似的。你是说我为什么要在这一部分加粗?如果是这样的话,我希望其他路过的人能回答另一个问题。这并不是一个真正的问题,但我对改变任何实际的措辞持谨慎态度,因为我担心它会被回滚。所以我就把那个模糊的部分加粗了哈。也许你可以帮忙,因为我的谷歌fu现在不工作了。我认为ruby的正则表达式库是PCRE,JavaScript是POSIX,这对吗?这也是为什么我没有标记他的答案,希望他会回来,因为我不能给他留言。我一定会说的不抱歉-我的意思是有人把你的问题记下来(改为-1),但我认为这是一个完全合理的问题,所以我给了你+1,并留下了评论:)
      PCRE: /\A[A-Z0-9_\.%\+\-]+@(?:[A-Z0-9\-]+\.)+(?:[a-z]{2,4}|museum|travel)\z/i 
      POSIX: /^[A-Z0-9_\.%\+\-]+@(?:[A-Z0-9\-]+\.)+(?:[A-Z]{2,4}|museum|travel)$/i