替换powershell中的regex值


  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. 关于regex的任何建议,请使用值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'

[[匹配,请注意,由于[对regex来说是特殊的,因此需要对其进行转义以进行文字匹配。d是一个数字。.*?匹配尽可能少的字符,直到m匹配为止。

String类Replace()方法不支持regex。因此,您不能在内部使用类似d的正则表达式。

最新更新