Regex 使用正则表达式在PowerShell中增加一个数字

Regex 使用正则表达式在PowerShell中增加一个数字,regex,powershell,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的文件中(用于测试目的) 我想做的是把每个数字增加一。还有其他定义和数字不能增加,我有一个需要增加的所有变量名的列表 我已经有了像这样的PowerSh

我有一些包含字符串的文件,比如

#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的文件中(用于测试目的)

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

我已经有了像这样的PowerShell命令

Get-Content regex-test | foreach { [regex]::match($_,'"#?(\d+)"$').groups[1].value }
它返回数字。现在只需将它们替换为[value]+1即可

你能给我指一下正确的方向吗?谢谢

为什么不:

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

然后保存
$tmp

如果您使用
(1+$n)
反转
([int32]$n+1)
,则由于powershell的强制功能,您不需要强制转换。@C.B.感谢您的提示。我不知道!