我有一个如下所示的 mac 地址482C6A1E593D,我想将其返回为类似这样的地址48:2C:6A:1E:59:3D
我已经能够编写这段代码:
Pattern.compile("(.{2})").matcher(macAddress).replaceAll("$1:");
Run Code Online (Sandbox Code Playgroud)
然而它返回48:2C:6A:1E:59:3D:而不是48:2C:6A:1E:59:3D我想忽略最后一个匹配以避免最后一个:
您还可以使用要求存在符号的正向前瞻:
String macAddress = "482C6A1E593D";
System.out.println(macAddress.replaceAll(".{2}(?=.)", "$0:"));
Run Code Online (Sandbox Code Playgroud)
看这个演示
请注意,这里不需要任何捕获组,因为它$0是对整个匹配的反向引用(同样可以与TheLostMind 的正则表达式- use一起使用s.replaceAll("\\w{2}(?!$)", "$0:"))。