Regex powershell正则表达式删除数字

Regex powershell正则表达式删除数字,regex,powershell,replace,digit,Regex,Powershell,Replace,Digit,使用Powershell,我试图删除字符串数字部分的前导零。以下是几个示例和预期结果: AB012需要变成AB12 ABC010需要变成ABC10 我尝试了以下方法,但它去掉了所有的零。我如何告诉它只删除前导零?字符串的格式始终为字母后跟数字。但是,字母的长度可能会有所不同 $x = ABC010 $y = $x -replace '[0]' $y 这将显示ABC1,我希望显示ABC10 谢谢。试试这个带有“向后看”和“向前看”断言的正则表达式 '(?<=.+)(0)(?=.+)' ”

使用Powershell,我试图删除字符串数字部分的前导零。以下是几个示例和预期结果:

AB012需要变成AB12

ABC010需要变成ABC10

我尝试了以下方法,但它去掉了所有的零。我如何告诉它只删除前导零?字符串的格式始终为字母后跟数字。但是,字母的长度可能会有所不同

$x = ABC010
$y = $x -replace '[0]'
$y
这将显示ABC1,我希望显示ABC10


谢谢。

试试这个带有“向后看”和“向前看”断言的正则表达式

'(?<=.+)(0)(?=.+)'

”(?试试这个带有向后看和向前看断言的正则表达式

'(?<=.+)(0)(?=.+)'

”(?此正则表达式搜索后跟任意数量的0的字母,并将字母保留在替换模式中,但去掉0:

$x = $x -replace '([a-z])0*', '$1'

此正则表达式搜索后跟任意数字0的字母,并将该字母保留在替换模式中,但去掉0:

$x = $x -replace '([a-z])0*', '$1'

下面是另一个将数字计算为数字的选项:

PS> [regex]::replace('ABC010','(\d+)',{iex $args[0]})
ABC10 
或使用TrimStart方法:

PS> [regex]::replace('ABC010','(\d+)',{$args[0].ToString().TrimStart('0')})
ABC10

下面是另一个将数字计算为数字的选项:

PS> [regex]::replace('ABC010','(\d+)',{iex $args[0]})
ABC10 
或使用TrimStart方法:

PS> [regex]::replace('ABC010','(\d+)',{$args[0].ToString().TrimStart('0')})
ABC10