Powershell更换问题

时间:2019-01-10 06:44:37

标签: regex powershell replace

在PowerShell中编写正则表达式来替换文件中以下以下多次出现的麻烦。它们是这些行上的唯一字符

]

[

我想用逗号替换两个括号

之前:

]

[

之后:

,

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

我想您使用的是MS Windows,其中(和MS-DOS)新行用后续的回车符\r)和换行符\n)个字符,由于空行,您必须匹配两次。

由于括号是正则表达式中的特殊字符,因此您必须使用\对其进行转义,并且还必须包含m修饰符以进行多行匹配:

$s -replace "(?m)\[\r\n\r\n\]", ","

答案 1 :(得分:0)

要使用RegEx,请将文件中的输入视为单个字符串,您需要将Get-Content-raw parameter(PSv3 +)配合使用
-或-

使用-join将字符串数组连接为单个字符串。

使用存储在文件sample.txt中的整个问题文本:

> (Get-Content .\sample.txt -raw) -replace '\][\r\n]+\[',','


Having troubles in PowerShell writing the regex to replace the following multiple occurrences of the below inside a file. They are the only characters on those lines

,

I want to replace both brackets with a comma

before:

,

after:

,

Any suggestions?