[英]replace String with another in java using regular Expression
在 Java 中,我必须使用 RegEx 和 function 替换将字符串值包装到另一个值。
示例 #1:什么将“ 123C5
”(5 个字符)替换为“ *****
”?
示例#2:什么将“ 12354CF5214
”(11 个字符)替换为“ *******5214
”? 仅替换前 7 个字符
目前,我正在使用这个 function 但我需要优化它:
public String getMaskedValue(String value) {
String maskedRes = "";
if (value!=null && !value.isEmpty()) {
maskedRes = value.trim();
if (maskedRes.length() <= 5) {
return maskedRes.replaceAll(value, "$1*");
} else if (value.length() == 11) {
return maskedRes.replace(value.substring(0, 7), "$1*");
}
}
return maskedRes;
}
谁能帮帮我? 谢谢你的先进
您可以使用限制宽度的后视解决方案,例如
public static String getMaskedValue(String value) {
return value.replaceAll("(?<=^.{0,6}).", "*");
}
(?<=^.{0,6}).
pattern 匹配字符串开头前面有 0 到 6 个字符的任何字符(但换行符,带有.
)。
关于在 Java 正则表达式中使用lookbehinds的说明:
✽ Java 接受后视中的量词,只要匹配字符串的长度在预定范围内。 例如,
(?<=cats?)
是有效的,因为它只能匹配三个或四个字符的字符串。 同样,(?<=A{1,10})
是有效的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.