正则表达式屏蔽Java中前两个和后两个字符以外的字符

Sma*_*B0y -2 java regex

在Java中,我想编写一个正则表达式来执行以下操作:
源字符串:abcdefg
输出字符串:ab***fg

源字符串:123456789
输出字符串:12*****89

源字符串:a123d
输出字符串:a1*3d

ndn*_*kov 6

(?<!^.?).(?!.?$)
Run Code Online (Sandbox Code Playgroud)

这个想法是:

  • (?<!)- 向后看以确保
  • ^.?-该字符串的开头不是零或一个字元
  • . -将要替换的字符
  • (?!)- 提前否定,以确保
  • .?$-所述字符串的结束不是零个或一个字符

替换为single *