用于屏蔽字符串起始8个字符的java正则表达式
我试图用下面的JAVA代码屏蔽给定字符串的起始精确8个字符,该字符串可以包含任何字符和长度
String maskChar = "x";
String fieldName = "j@#G}3 2jklWEFSD681@#";
fieldName = fieldName.replaceAll("(?:^.{8})", maskChar);
正在给出输出xjklWEFSD681@#
,该输出被替换为单个“x”
但是预期的输出应该是xxxxxxxxjklWEFSD681@#
这段代码有regex(?:^.{8})
,它返回完整的&;精确的8个起始字符作为字符串,
因此,当它屏蔽时,它用单个maskChar
替换返回的字符串。当字符串长度小于8个字符时,这也应该处理大小写,它应该屏蔽给定字符串的所有字符
所以问题是,如何使正则表达式以字符而不是字符串的形式返回?或者请建议使用不同的正则表达式,因为我是新手。 谢谢
# 1 楼答案
你可以用
见Java regex demo
详细信息:
(?<=^.{0,7})
-一种正查找,与前面紧跟着零到七个字符的位置相匹配,而不是换行符.
-除换行符以外的任何单个字符李>