scala提取邮件地址的域名部分


我刚刚学scala,对于这门语言不熟悉。在scala中,如何快速地获取一个...

新的需求是将邮箱的名字部分隐藏,也就是将[email protected]变成******@gmail.com,在javascript里可以用正则实现,在scala里有什么好方法吗?

scala 正则表达式

大傻子11 11 years, 6 months ago

 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

Your Answer