我需要从两个值之间出现的文本文件中检索字符串。例如,我需要在< postcode >W12 FGS < /postcode >
之间检索字符串,然后在该字符串中放置一个空格,因此它看起来像< postcode >W12 FGS < /postcode >
。此文件可包含超过100个邮政编码。我该怎么办?
答案 0 :(得分:0)
在处理正则表达式时,你需要非常精确,无论如何,根据你的要求,我需要:
$pattern = [regex]::escape('< postcode >W12FGS < /postcode >')
$replaceWith = '< postcode >W12 FGS < /postcode >'
(Get-Content .\postcode.txt) |
Foreach-Object {$_ -replace $pattern,$replaceWith } |
Set-Content .\postcode.txt
根据评论更新,更改文件夹中多个xml的邮政编码。
Get-ChildItem c:\postcodes -Filter *.xml | Foreach-Object{
[xml]$xml = Get-Content $_.FullName
$xml.SelectNodes('//c_postcode') | Foreach-Object{ $_.'#text' = $_.'#text'.Insert(3,' ') }
$xml.Save($_.FullName)
}