Python 如何检查正则表达式中多个点的最小/最大长度

Python 如何检查正则表达式中多个点的最小/最大长度,python,regex,validation,Python,Regex,Validation,我正在尝试验证电子邮件地址。用户名、域和TLD只能是数字和字母,长度在3-20之间。我把它记下来了 [a-zA-Z0-9]{3,20} 因此,当我想用它来检查电子邮件的所有3个部分时,我会考虑如下操作: [a-zA-Z0-9]{3,20}\+[a-zA-Z0-9]{3,20}\+.[a-zA-Z0-9]{3,20} 然而,这并不能验证。是否有方法验证最小/最大长度一次,而不是在3个不同的点 我试图验证的电子邮件是:testuser@testdomain.com 我使用python3编写此文件,数

我正在尝试验证电子邮件地址。用户名、域和TLD只能是数字和字母,长度在3-20之间。我把它记下来了

[a-zA-Z0-9]{3,20}

因此,当我想用它来检查电子邮件的所有3个部分时,我会考虑如下操作:

[a-zA-Z0-9]{3,20}\+[a-zA-Z0-9]{3,20}\+.[a-zA-Z0-9]{3,20}

然而,这并不能验证。是否有方法验证最小/最大长度一次,而不是在3个不同的点

我试图验证的电子邮件是:
testuser@testdomain.com


我使用python3编写此文件,数据从.csv读入,“+”导致电子邮件不匹配,除非“+”位于该位置:

这就是你想要的:


[a-zA-Z0-9]{3,20}@[a-zA-Z0-9]{3,20}\.[a-zA-Z0-9]{3,20}

要帮助编写正则表达式,此网站是一个救命稻草:

除非“+”处于该位置,否则“+”会导致电子邮件不匹配:

这就是你想要的:


[a-zA-Z0-9]{3,20}@[a-zA-Z0-9]{3,20}\.[a-zA-Z0-9]{3,20}

要帮助编写正则表达式,此网站是一个救命稻草:
([a-zA-Z0-9]{3,20})@([a-zA-Z0-9]{3,20})[.]([a-zA-Z0-9]{3,20})

使用

([a-zA-Z0-9]{3,20})@([a-zA-Z0-9]{3,20})[.]([a-zA-Z0-9]{3,20})


使用您的
\+
需要
+
才能匹配。@一定的性能,所以只需
+
而不是
\+
?您想用它们做什么?我想,把它们完全排除在外吧?我误读了文档,这完全是一个愚蠢的错误。你的
\+
s需要
+
s才能与之匹配。@CertainPerformance所以就
+
而不是
\+
?你想用它们做什么?我想,把它们全部删掉吧?我误读了文档中的
+
完全是一个愚蠢的错误。多余的括号是不必要的。你确定你在regex101.com上没有收到超时错误吗?对我来说,python正则表达式是有效的。它们不是必需的,但它们确实可以让每个捕获组都更加明显。多余的括号是不必要的。你确定在regex101.com上没有出现超时错误吗?对我来说,python正则表达式是有用的,它们不是必需的,但它们确实使每个捕获组的作用更加明显。我误解了
+
在正则表达式中的实际作用。谢谢你的澄清。我误解了
+
在正则表达式中的实际作用。谢谢你的澄清。