本文目录
python 正则表达式判断邮箱格式是不是正确
以下代码调试通过:
import re
def validateEmail(email):
if len(email) 》 7:
if re.match(“^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|{1,3})(\\]?)$“, email) != None:
print(’good’)
# return 1
# return 0
print(’exit’)
validateEmail(’lucia@139.com’)
python中的正则表达式中的 “|“
Python中re.findall()函数是要求正则表达式在捕获第0组数据时,要在正则表达式上加小括号才能捕获.
也就是说如果你要获取整个正则表达式匹配的数据(你这里是电子邮箱地址),需要在正则表达式外面加小括号,
然后取第0捕获组的数据(你这里是[x for x in zhengze]),
因为findall函数把每一个匹配的多个捕获组(就是你正则表达式中的小括号中)的数据放到一个元组里,所以要用for循环把第0捕获组的数据取出来.
具体程序改进如下
》》》zhengze=re.findall(“([A-Za-z0-9]+@(163|qq|gmail)\.com)“,txt)
》》》[x for x in zhengze]
结果就是你要的邮箱列表了.
求验证邮箱正则表达式代码
^是匹配的字符开头,
\w匹配的是字母,数字,下划线,汉字,
+是匹配一次或多次(就是最少一次),
\.是匹配的
.
(因为.在正则中匹配除换行符以外的任意字符),所以如果需要.在字符串中出现的话就加一个\
,这个是转义符
*匹配的是重复零次或更多次
@是匹配字符串中必须出现的字符
$是字符串结尾
本人手写,希望给分,哈哈
有关python正则表达式的问题
163邮箱格式
ret = re.match(r“^[a-zA-z]{1}\w{5,17}@163\.com$“, email)
原意是想匹配一个前三个字符为字母、后三个字符为数字的163邮箱:
ret=re.match(r’^[a-zA-z]{3}{3}@163\.com$“, email)
或ret=re.match(r’^[a-zA-z]{3}\d{3}@163\.com$“, email)
? * + {} 都是量词的使用,表示前面字符或字符串重复的次数
?重复0或1次
* 重复0或多次
+ 重复1或多次
{n} 重复n次
{n,} 至少重复n次
{n,m} 重复次数≥n 且 ≤m