验证电子邮件地址的灾难性回溯错误

Catastrophic Backtracking error validating email address

我需要找到一个正则表达式,以最简单的形式验证电子邮件地址,并且电子邮件地址不应超过 250 个字符。到目前为止,这是我想出的。

(?=.{1,250}$)(.+)@(.+){2,}\.(.+){2,}

问题是此表达式适用于较小的电子邮件长度集。也就是说,如果我输入 10 而不是 250,它就会起作用。如果我针对大样本测试上述表达式,它将抛出灾难性的回溯异常。 https://regex101.com/r/Dv2j2U/1。有人可以帮我解决这个问题吗?

只需将 (.+){2,} 替换为 .{2,}