我想通过电子邮件生成一个用户名,规则如下:
- 名字的第一个字母
- 姓氏的前7个字母
例如:
getUsername("my-firstname.my-lastname@email.com")
mmylastn
这里是 getUsername
的代码:
def getUsername(email) :
re.match(r"(.){1}[a-z]+.([a-z]{7})",email.replace('-','')).group()
- 使用
email.replace('-','')
来去掉-
符号。 - 用正则表达式捕获我上面描述的两个组。
如果我使用.group(1,2)
,我可以看到捕获的组是m
和mylastn
,所以一切都很好。
但是使用.group()
不仅返回捕获组,还包括它们之间的所有内容: myfirstnamemlastn
有人能解释一下这种行为吗?
。
. 另外,{1}
是多余的,请将其删除。接下来,如果您需要获取一个mmylastn
字符串,请加入组,"".join(re.match(...)。groups())
-请参阅https://rextester.com/UMOO62524. - Wiktor StribiżewfirstName, lastName = email.split('@')[0].replace('-','').split('.')
print(firstName[0] + lastName[0:7])
- Krishna Chaurasia