全部。我想屏蔽電子郵件,但遇到了一個小問題。
我的代碼
val email = lucyrocher@gmail.com
val p = """^([^@]{2})([^@] )""".toRegex()
val result = email.replace(p) {
it.groupValues[1] "*".repeat(it.groupValues[2].length)
}
預期結果 :前兩個字母帶有 * 的掩碼 && @ 之后的前四個字母
lu********@****l.com
當前結果:可以在 @ 之前屏蔽,但不能在它之后屏蔽
lu********@gmail.com
如何屏蔽@之后的前 4 個字母?
uj5u.com熱心網友回復:
對于以后會看到這篇文章的任何人,我在這里分享我的代碼。
電子郵件掩碼:lu********@****l.com
val regex = """^([^@]{2})([^@] )([^@]{0}@)([^@]{4})""".toRegex()
val emailMask = args.biometricOtp.otpData.replace(regex) {
it.groupValues[1] "*".repeat(it.groupValues[2].length)
it.groupValues[3] "*".repeat(it.groupValues[4].length) }
電話號碼掩碼:82103*******
val regex = """([^@]{5})([^@] )""".toRegex()
val smsMask = args.biometricOtp.otpData.replace(regex) {
it.groupValues[1] "*".repeat(it.groupValues[2].length) }
uj5u.com熱心網友回復:
您可以將所有字符替換為*與以下模式匹配的字符:
(?:\G(?!^)|(?<=^[^@]{2}|@))[^@](?!\.[^.] $)
請參閱正則運算式演示。詳情:
(?:\G(?!^)|(?<=^[^@]{2}|@))- 匹配@(with ),或字串開頭和除(with )@之外的任意兩個字符,或上一個成功匹配的結尾 (with )@(?<=^[^@]{2}\G(?!^)[^@]- 除 a 以外的任何一個字符@(?!\.[^.] $)- 除了直到字串的結尾之外,它不會立即跟一個.,然后是一個或多個字符。.
請參閱Kotlin 演示:
val regex = """(?:\G(?!^)|(?<=^[^@]{2}|@))[^@](?!\.[^.] $)""".toRegex()
val email = "[email protected]"
val emailMask = email.replace(regex, "*")
print(emailMask)
// => lu********@****l.com
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/450646.html
