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
这个正则表达式对我的需要在各个方面都是正确的,除了它允许诸如 jim@f.com 之类的电子邮件。它说这些是匹配的。如果我没记错的话,[AZ] 后面的 {2,4} 不是意味着它必须在 2 到 4 个字符之间吗?会不会是争吵、博物馆和旅行的问题?我已经验证了这些在我的应用程序和一些 正则表达式测试人员中是允许的。 另外,我不清楚我是否正确地执行了 PCRE 和 POSIX。我担心他们可能都只是 PCRE 而我很可笑。AFAIK,JavaScript 是 POSIX,Ruby 是 PCRE。因此,如果我没有做对,请让我轻松,这是一个漫长而漫长的学习正则表达式的夜晚,进进出出,我正试图看起来很糟糕。:)