电子邮件屏蔽 Regex Kotlin
Email masking Regex Kotlin
全部。我想屏蔽电子邮件,但遇到了一点问题。
My code
val email = lucyrocher@gmail.com
val p = """^([^@]{2})([^@]+)""".toRegex()
val result = email.replace(p) {
it.groupValues[1] + "*".repeat(it.groupValues[2].length)
}
expected result : mask with * for first two letters && first four letters after @
lu********@****l.com
current result : can mask before @ but not after it
lu********@gmail.com
如何屏蔽@后的前4个字母?
对于以后post看到这个的人,我在这里分享我的代码。
Email Mask : 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) }
Phone number Mask : 82103*******
val regex = """([^@]{5})([^@]+)""".toRegex()
val smsMask = args.biometricOtp.otpData.replace(regex) {
it.groupValues[1] + "*".repeat(it.groupValues[2].length) }
您可以用符合以下模式的 *
替换所有字符:
(?:\G(?!^)|(?<=^[^@]{2}|@))[^@](?!\.[^.]+$)
见regex demo。 详情:
(?:\G(?!^)|(?<=^[^@]{2}|@))
- 匹配 @
(与 @
),或字符串的开头和 @
以外的任何两个字符(与 (?<=^[^@]{2}
),或上一次成功匹配的结尾(\G(?!^)
)
[^@]
- @
以外的任何一个字符
(?!\.[^.]+$)
- 后面没有紧跟 .
,然后是 .
以外的一个或多个字符,直到字符串结束。
参见 Kotlin demo:
val regex = """(?:\G(?!^)|(?<=^[^@]{2}|@))[^@](?!\.[^.]+$)""".toRegex()
val email = "lucyrocher@gmail.com"
val emailMask = email.replace(regex, "*")
print(emailMask)
// => lu********@****l.com
全部。我想屏蔽电子邮件,但遇到了一点问题。
My code
val email = lucyrocher@gmail.com
val p = """^([^@]{2})([^@]+)""".toRegex()
val result = email.replace(p) {
it.groupValues[1] + "*".repeat(it.groupValues[2].length)
}
expected result : mask with * for first two letters && first four letters after @
lu********@****l.com
current result : can mask before @ but not after it
lu********@gmail.com
如何屏蔽@后的前4个字母?
对于以后post看到这个的人,我在这里分享我的代码。
Email Mask : 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) }
Phone number Mask : 82103*******
val regex = """([^@]{5})([^@]+)""".toRegex()
val smsMask = args.biometricOtp.otpData.replace(regex) {
it.groupValues[1] + "*".repeat(it.groupValues[2].length) }
您可以用符合以下模式的 *
替换所有字符:
(?:\G(?!^)|(?<=^[^@]{2}|@))[^@](?!\.[^.]+$)
见regex demo。 详情:
(?:\G(?!^)|(?<=^[^@]{2}|@))
- 匹配@
(与@
),或字符串的开头和@
以外的任何两个字符(与(?<=^[^@]{2}
),或上一次成功匹配的结尾(\G(?!^)
)[^@]
-@
以外的任何一个字符
(?!\.[^.]+$)
- 后面没有紧跟.
,然后是.
以外的一个或多个字符,直到字符串结束。
参见 Kotlin demo:
val regex = """(?:\G(?!^)|(?<=^[^@]{2}|@))[^@](?!\.[^.]+$)""".toRegex()
val email = "lucyrocher@gmail.com"
val emailMask = email.replace(regex, "*")
print(emailMask)
// => lu********@****l.com