使用正则表达式增加PowerShell中的数字

时间:2013-06-05 13:56:07

标签: regex powershell

我有一些包含

等字符串的文件
#define PROG_HWNR "#37595"
#define C_HWPROG_NR "24499"
#define PROG_HWNR "#39917"
#define C_HWPROG_NR "24901"
#define C_HWPROG_NR "37598"

我把它们放在一个名为regex-test的文件中(用于测试目的)

我想要做的是将每个数字增加一个。还有其他#defines和数字不能增加,我有一个需要增加的所有变量名称的列表。

我已经有像

这样的PowerShell命令
Get-Content regex-test | foreach { [regex]::match($_,'"#?(\d+)"$').groups[1].value }

返回数字。它们现在只需要用[value] + 1

替换 你能指出我正确的方向吗?谢谢!

1 个答案:

答案 0 :(得分:8)

为什么不呢:

$tmp = Get-Content regex-test | foreach { $n = [regex]::match($_,'"#?(\d+)"$').groups[1].value; if ($n) {$_ -replace "$n", ([int32]$n+1)} else {$_}; }

然后保存$tmp