0

我需要从出现在两个值之间的文本文件中检索一个字符串。例如,我需要检索之间的字符串< postcode >W12 FGS < /postcode > ,然后在该字符串中放置一个空格,所以它看起来像< postcode >W12 FGS < /postcode >. 该文件可以包含 100 多个邮政编码。我该怎么做?

4

1 回答 1

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) 
}
于 2012-08-13T14:19:57.490 回答