用换行符替换单词

时间:2016-04-21 07:43:56

标签: powershell powershell-v4.0

这是我的文本文件(temp.txt):

  

(test1 AND id = 42343)AND NOT(test2 AND id = 12234)AND NOT(test3 AND id = 12342)AND NOT(test4 AND id = 13342)

我必须替换所有“)AND NOT(”以便格式化后的文件看起来像这样:

  

test1 AND id = 42343
test2 AND id = 12234
test3 AND id = 12342
test4 AND id = 13342

我试过这个脚本/命令:

(Get-Content C:\temp.txt) |ForEach-Object{$_ -replace "[) AND NOT (]","`n`r"}|Set-Content C:\temp.txt

但现在文本文件看起来很糟糕:

  

ES
  1
  
  
  
  
  我
  = 42343
  
  
  
  
  
  
  
  
  
  
  
  ES
  2
  
  
  
  
  我
  = 12234
  
  
  
  
  
  
  
  
  
  
  
  ES
  3
  
  
  
  
  我
  = 12342
  
  
  
  
  
  
  
  
  
  
  
  ES
  4
  
  
  
  
  我
  = 13342
  
  
  
  

那么我的命令有什么问题?

1 个答案:

答案 0 :(得分:0)

尝试:

$a = "(test1 AND id=42343) AND NOT (test2 AND id=12234) AND NOT (test3 AND id=12342) AND NOT (test4 AND id=13342)"
$a.Replace(") AND NOT (", "`r`n").TrimStart("(").TrimEnd(")") | Out-File E:\2.txt

这里你真的不需要正则表达式,甚至不需要循环