如何使用正则表达式获得数字而不领先0

时间:2014-11-01 18:41:45

标签: regex powershell-v2.0

我想在一个字符串中输入一个数字并显示这个数字而不引导" 0"。

如果我这样做:

"--- 01 ---" -replace ".*(\d\d).*", "Number `$1"

我得到了

Number 01

我不知道用正则表达式删除前导0。然后我转换int中找到的数字。 但如果我这样做

"--- 01 ---" -replace ".*(\d\d).*", "Number $([int]$1)"

我得到了

Number 0

而不是

Number 1

为什么?如何删除前导0?

由于

2 个答案:

答案 0 :(得分:2)

使用:

"--- 01 ---" -replace ".*?0*(\d+).*", "Number `$1"

因为你可以使用大数字。

您可以使用this link

进行测试

答案 1 :(得分:0)

正则表达式(\d\d)指定字符串中有两位数字。您可以指定0(\d)来指定其后面是0和一位数。

在你的例子中,最终的PS将是这样的:

"--- 01 ---" -replace ".*0(\d).*", "Number `$1"