我使用以下表达式来验证电子邮件地址(我在互联网上的某个地方找到了它,所以如果它完全错误,请不要怪我:-)):
^((?:(?:(?:[a-zA-Z0-9_][.-+]?)*)[a-zA-Z0-9_][.-+]?)*)\@( (?:(?:(?:[a-zA-Z0-9][.-_]?){0,62})[a-zA-Z0-9])+).([a-zA- Z0-9]{2,6})$
它在大多数情况下都可以正常工作,但由于某种原因,在电子邮件地址的某处添加空格会使 IsMatch 方法非常慢。似乎计算时间随着电子邮件地址中空间的位置而增长。以下无效的电子邮件地址说明了问题。
test@aweb serversomewhereintheworld.com(慢)
test@awebserversomewhere intheworld.com(非常慢)
用于验证电子邮件地址的正则表达式有什么问题?