PowerShell如何给字符串按每两位分组并添加连字符?
PowerShell字符串按两位分组并添加连字符的简便方法
给你两种简单直接的实现方式,适合PowerShell新手快速上手:
方法一:正则替换(最简便)
利用PowerShell的-replace操作符结合正则表达式,一步完成分组和添加连字符,最后清理末尾多余的符号:
$inputStr = "00255D413701" $result = $inputStr -replace '(.{2})', '$1-' | TrimEnd '-' # 输出结果:00-25-5D-41-37-01 $result
原理:(.{2})会逐个捕获字符串里的每两个字符,$1代表捕获到的内容,替换成$1-就给每组加了连字符;最后用TrimEnd '-'去掉字符串末尾多余的那个连字符。
你也可以用正则直接去掉末尾的连字符,写法更紧凑:
$inputStr = "00255D413701" $result = $inputStr -replace '(..)', '$1-' -replace '-$', '' $result
这里-$匹配字符串末尾的连字符,替换为空即可。
方法二:结合正则匹配与字符串拼接
先通过正则匹配提取所有两位的子串,再用连字符把它们拼接起来:
$inputStr = "00255D413701" $parts = [regex]::Matches($inputStr, '.{2}').Value $result = [string]::Join('-', $parts) $result
原理:[regex]::Matches会找出所有符合.{2}(任意两个字符)的子串,把这些子串存到数组$parts里,再用[string]::Join把数组元素用连字符连接成最终字符串。
这两种方法都不需要复杂的循环,适合新手快速实现需求,而且对长度为偶数的字符串都能完美处理。
内容的提问来源于stack exchange,提问作者nissedanielsen
相关产品推荐
相关产品推荐

