3
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。因此,如果我没有做对,请让我轻松,这是一个漫长而漫长的学习正则表达式的夜晚,进进出出,我正试图看起来很糟糕。:)

4

3 回答 3

10

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

于 2009-12-17T13:03:28.590 回答
0

POSIX 不支持非捕获组(?:group),因此您的正则表达式都不是 POSIX。JavaScript 不使用 POSIX。JavaScript 正则表达式是 Perl 风格的,但它不具备所有功能。查看我网站上的正则表达式风味比较以获取详细信息。

于 2010-02-25T02:31:28.690 回答
0

Ruby 正则表达式文档:

于 2009-12-18T20:25:25.090 回答