在Powershell中,增加字符串变量中的数字最快/最简单的方法是什么



我有以下Powershell变量

$var = "AB-0045"

我想将字符串中的数字增加为"0";AB-0046";。我可以做:

$newNumber = [int]$var.Substring($var.length -4,4) + 1

这将给我所需的数字46,但随后我必须将该46作为字符串附加到新字符串";AB-00";。有更好的方法吗?

既然有了整数,就必须转换回以您想要的方式格式化的字符串并进行连接。

我建议添加";AB-";而不是";AB-00";以防你的号码超过100。

要填充前导零,可以使用-f运算符。

例如"{0:d4}" -f 45

您仍然需要首先从原始字符串中获取整数(在本例中为45(。

我使用正则表达式类Replace()方法和字符串类Split()方法以及字符串格式化程序进行了测试。如果字符串的格式始终相同,则Split()似乎会更快。Replace()方法不关心最后4个数字之前发生的情况:

# Replace Method
[regex]::Replace($var,'d{4}$',{([int]$args[0].Value+1).ToString('0000')})
# Split method
$a,[int]$b = $var.split('-'); "{0}-{1:0000}" -f $a,++$b

最新更新