我必须屏蔽我的电子邮件,也就是说,用星号代替几个字母。
这是我的要求
1.输入-asxyz@ifyourock.com
输出-**xyz@ify**********
1.输入-xyz@gmail.com
输出-xyz@gma******
1.输入-asxyz.abc@gmail.com
输出-******abc@gma******
1.输入-car@domain.com
输出-car@dom*******
1.输入-as@domain.com
输出-as@dom*******
下面是我的正则表达式,我尝试:
fun maskEmail(email: String): String {
val regex = "(.{3})(.*)(@.{3})(.*)".toRegex()
return regex.replace(email) { matchResult ->
val (prefix, middle, atSymbol, domain) = matchResult.destructured
"${prefix}${"*".repeat(middle.length)}${atSymbol}${"*".repeat(domain.length - 2)}"
}
}
但它给出了错误的输出:
输入-asxyz@ifyourock.com
输出-as***@ify**********
我必须在@
前后保留**〈=3**个字母
我需要帮助来实现上述产出。
1条答案
按热度按时间3duebb1j1#
我不太了解Kotlin,但在一个在线IDE中玩了一会儿,我想到了:
试试这个online
编辑:
我试图找到一种方法使你的搜索模式更加动态。上面的方法要求你让每个长度选项在模式中成为它们各自的选择。所以为了避免这种情况,我拼凑起来:
试试这个online
或者,不使用regex:
试试这个online
所有选项打印: