Java 用于屏蔽字符串起始8个字符的正则表达式

Java 用于屏蔽字符串起始8个字符的正则表达式,java,regex,Java,Regex,我试图用下面的JAVA代码屏蔽给定字符串的起始精确8个字符,该字符串可以包含任何字符和长度 String maskChar=“x”; String fieldName=“j@#G}3 2jklWEFSD681@#”; fieldName=fieldName.replaceAll((?:^.{8})”,maskChar); 正在给出输出xjklWEFSD681@#,该输出被替换为单个“x”。 但是预期的输出应该是xxxxxxxx jklwefsd681@# 这段代码有regex(?:^.{8})

我试图用下面的JAVA代码屏蔽给定字符串的起始精确8个字符,该字符串可以包含任何字符和长度

String maskChar=“x”;
String fieldName=“j@#G}3 2jklWEFSD681@#”;
fieldName=fieldName.replaceAll((?:^.{8})”,maskChar);
正在给出输出
xjklWEFSD681@#
,该输出被替换为单个“x”。
但是预期的输出应该是
xxxxxxxx jklwefsd681@#

这段代码有regex
(?:^.{8})
,它以字符串形式返回完整和精确的8个起始字符, 因此,当它屏蔽时,它用single
maskChar
替换返回的字符串。当字符串长度小于8个字符时,这也应该处理大小写,它应该屏蔽给定字符串的所有字符

所以问题是,如何使正则表达式以字符而不是字符串的形式返回?或者请建议使用不同的正则表达式,因为我是新手。 谢谢。

您可以使用


fieldName=fieldName.replaceAll(“(?
replaceAll(“(?您上面给出的
fieldName
的预期输出是什么?