需要使用 groovy 将字符串“4AAC6AA8D5827BA”转换为这种格式“4a:ac:6a:a8:d5:82:7b”

Need to convert a string "4AAC6AA8D5827BA" to into this format "4a:ac:6a:a8:d5:82:7b" using groovy

我正在尝试使用 groovy 将此字符串“4AAC6AA8D5827BA”转换为此格式“4a:ac:6a:a8:d5:82:7b”。你能帮忙吗

这应该可以解决问题:

def addDots(x) { x.toLowerCase().replaceAll(/([0-9a-f]{2})(?!$)/, '[=10=]:') }

这不会检查输入的模式是否正确,并且会对不同格式的任何内容做出奇怪的事情。

但是addDots("4AAC6AA8D5827BA")会return4a:ac:6a:a8:d5:82:7b:a

请注意,您输入的字符数为奇数,这可能是某处的复制粘贴错误。

不确定为什么要省略最后一个“A”,但代码可以做到:

String res = "4AAC6AA8D5827BA".toLowerCase().toList().collate( 2 ).findResults{ 2 == it.size() ? it.join( '' ) : null }.join( ':' )
assert res == '4a:ac:6a:a8:d5:82:7b'
def addDots(x) { x.toLowerCase().findAll(/..?/).join(':') }