我想将一个16位数字的前12位数字转换为星号.
最后4位数应该是可见的.
输入示例:
String test = "test/1234567890121123/121/test";
String test2 = "hey: 1234567890123456";
Run Code Online (Sandbox Code Playgroud)
预期产量:
String test = "test/************1123/121/test";
String test2 = "hey: ************3456";
Run Code Online (Sandbox Code Playgroud)
注意:输入是动态的
试试这个选项:
String test = "test/1234567890121123/121/test";
String test2 = "hey: 1234567890123456";
test = test.replaceAll("\\b\\d{12}(?=\\d{4}\\b)", "************"); // 12 *'s
System.out.println(test);
Run Code Online (Sandbox Code Playgroud)
这里的技巧是手术替换16位数字开头的12位数字.为此,我们可以搜索\b\d{12}(?=\d{4}\b).该模式的最后一部分是一个积极的先行,它断言但不消耗.由于前瞻实际上并不消耗,因此匹配的内容不会受到替换的影响.
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |