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.感谢您的提示。我不知道!