[AZ] {2,4}不限于2到4个字符

zkw*_*ntz 3 javascript ruby regex pcre posix

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
Run Code Online (Sandbox Code Playgroud)

这个正则表达式在各方面都是正确的,除了它允许发送电子邮件,如jim@f.com.它说这些是匹配的.如果我没弄错的话,[AZ]之后的{2,4}是不是意味着它必须在2到4个字符之间?这可能是争吵,博物馆和旅行的问题吗?我已经确认在我的应用程序和一些正则表达式测试人员 中允许这些 .另外,我很清楚我是否正确地完成了PCRE和POSIX.我担心他们可能都是PCRE而且我很荒谬.AFAIK,JavaScript是POSIX,Ruby是PCRE.因此,如果我没有做到这一点,那就轻松地说,这是一个漫长而漫长的学习正则表达式的夜晚,我想要看起来很糟糕.:)

Dav*_*d M 10

它确实如此,但它只适用于顶级域名(在您的示例中为"com").

  • 弗里德尔的书很棒.如果你想进入正则表达式的细节,这本书适合你.有关更实用的方法,请查看http://www.regular-expressions.info或Jan Goyvaerts/Steve Levithan撰写的"正则表达手册". (2认同)