scala提取邮件地址的域名部分
我刚刚学scala,对于这门语言不熟悉。在scala中,如何快速地获取一个...
新的需求是将邮箱的名字部分隐藏,也就是将[email protected]变成******@gmail.com,在javascript里可以用正则实现,在scala里有什么好方法吗?
大傻子11
11 years, 6 months ago
Answers
val r = """([_A-Za-z0-9-]+(?:\.[_A-Za-z0-9-\+]+)*)(@[A-Za-z0-9-]+(?:\.[A-Za-z0-9-]+)*(?:\.[A-Za-z]{2,})) ?""".r
举个例子:
r.replaceAllIn("[email protected] [email protected]", (m => "*****" + m.group(2)))
// 会输出 :
// String = *****@gmail.com *****@gmail.com.cn
说明:
-
括号
()
是捕捉分组 -
这样的括号
(?:)
是表示不分组 -
所以这个正则有三个分组,分别是:
-
m.group(0)
是匹配整个正则的字符串 -
m.group(1)
是匹配@
前的字符 -
m.group(2)
是匹配@
以及之后的字符
-
十文字乱樱
answered 11 years, 6 months ago