Regex Powershell替换多行

Regex Powershell替换多行,regex,powershell,Regex,Powershell,在Powershell中,我尝试替换以下内容: <Name>RANDOMTEXT</Name> </Member> 随机文本 与 随机文本 我正在使用以下代码: $content = [System.IO.File]::ReadAllText(<XMLFILE>).Replace("</Name>`n</Member>","</Name></Member>") [System.IO.File]:

在Powershell中,我尝试替换以下内容:

<Name>RANDOMTEXT</Name>
</Member>
随机文本

随机文本
我正在使用以下代码:

$content = [System.IO.File]::ReadAllText(<XMLFILE>).Replace("</Name>`n</Member>","</Name></Member>")
[System.IO.File]::WriteAllText(<NEWFILE>, $content)
$content=[System.IO.File]::ReadAllText().Replace(“'n',”)
[System.IO.File]::WriteAllText(,$content)
替换不起作用


有什么方法可以做到这一点吗?

如果您想同时处理Windows和Unix样式的换行符,我建议使用RegEx replace(即
-replace
操作符)而不是静态字符串(方法)版本

Windows样式是回车,后跟换行符(2个字符,
CRLF
“`r`n”
),Unix样式只是换行符(
LF
”`n

使用正则表达式替换:

$content = [System.IO.File]::ReadAllText(<XMLFILE>) -replace '</Name>\r?\n</Member>','</Name></Member>'
$content=[System.IO.File]::ReadAllText()-替换'\r?\n','
或替换所有换行符:

$content = [System.IO.File]::ReadAllText(<XMLFILE>) -replace '\r?\n'
$content=[System.IO.File]::ReadAllText()-替换“\r?\n”
问号
使
CR
可选(匹配0或1),因此这将包含所有换行符。

尝试
。替换(“+[环境]::换行符+”,”)

。替换(“'r`n',”)

一般来说,如果您只想删除新行,只需尝试
[System.IO.File]::ReadAllText().Replace([Environment]::NewLine,“”)
尝试
.Replace(`r`n',”)
$content = [System.IO.File]::ReadAllText(<XMLFILE>) -replace '\r?\n'