问题描述
<ThisBlock *:4443>
This Part can contain any random lines
This Part can contain any random lines
This Part can contain any random lines
</ThisBlock>
我想要的是使用 powershell 或 cmd 将上述块与这个新块交换
<ThisBlock *:4443>
This Part contain Static lines
This Part contain Static lines
</ThisBlock>
解决方法
您可以使用带有选项 SingleLine 的正则表达式:替换标签之间的所有文本
$newtext = "<ThisBlock *:4443>
This Part contain Static lines
This Part contain Static lines
</ThisBlock>"
$text = Get-Content -Path C:\httpd.conf -Encoding UTF8 -raw
$option = [System.Text.RegularExpressions.RegexOptions]::Singleline
#i have to escape the char \ becasue is special char
$pattern = "<ThisBlock \*:4443>.*?</ThisBlock>"
$rgx = [regex]::new($pattern,$option)
$result = $rgx.Replace($text,$newtext)
$result