我的文字文件如下
( HOST = <something numeric> )
想要替换HOST值。所以尝试使用下面的regx,但没有去
(Get-Content C:\Go\test.txt).replace("\HOST\s*=\s*.+\s*\", " HOST = 8888 ") | Set-Content C:\Go\test.txt
任何帮助?
答案 0 :(得分:0)
您需要确保使用以下正则表达式替换正则表达式:
PS> $s = "( HOST = 111111 )"
PS> $s -replace "HOST\s*=\s*\d+\s*", " HOST = 8888 "
( HOST = 8888 )
此处HOST\s*=\s*\d+\s*
匹配:
HOST
- 文字HOST
字符串\s*=\s*
- 包含0 +空格的=
\d+
- 一位或多位\s*
- 0+空格。如果* .ora文件是没有BOM的UTF8编码,则需要使用
$MyPath = 'C:\Go\test.txt'
$MyFile = Get-Content $MyPath
$MyFile = $MyFile -replace "HOST\s*=\s*\d+\s*", " HOST = 8888 "
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
[System.IO.File]::WriteAllLines($MyPath, $MyFile, $Utf8NoBomEncoding)