替换 powershell 中的正则表达式值

replace regex value in powershell

  1. 来自以下行: [1;32mget[0m /dir/dir/dir {} [oiid:197,uiid:7522] [32m200[0m (676ms)
  2. 将其转换为: 获取/dir/dir/dir{}[oiid:197,uiid:7522]200(676ms)
  3. 任何关于正则表达式的建议请值 200 可以是任何数字,值 get 可以是任何 http 方法。
  4. 我试过了
            $_.replace("[[\d+m]","").replace('[[1;\d+m]',"").replace('[[\d+]m]',"")
         } | Set-Content $newfilepath```

您可以使用 -replace 运算符和正则表达式执行以下操作:

$string = '[1;32mget[0m /dir/dir/dir {} [oiid:197,uiid:7522] [32m200[0m (676ms)'
$string -replace '\[\d.*?m'

\[ 匹配 [ 并注意它需要转义以进行文字匹配,因为 [ 对正则表达式是特殊的。 \d 是一个数字。 .*? 匹配尽可能少的字符,直到匹配 m

String class Replace() 方法不支持正则表达式。所以你不能在里面使用像 \d 这样的正则表达式。