如何解决如何在Powershell中使用Regex查找和替换某些文本?
我有以下脚本,并且我尝试使用以05开头的行中的测量值替换以10开头的行。但是,即使在notepad ++中也可以使用$ mat中使用的模式。 这就是我想要的样子
0100031 35327 00002228 2144064 20200801 0430035604050430 0000000000 00BLT1 00000 0500031 35327 V4A +019.8 0.85220 14702.0 14643.0 01 1000031 35327 V4A 80 +019.8 0.85220 14702.0 14643.0 V4A 1 0500031 35327 V4A +019.0 0.85220 15698.0 15647.0 01 1000031 35327 V4A 80 +019.0 0.85220 15698.0 15647.0 V4A 1 2000031 35327 00002228 2144064 0052299.0 0052115.0 0017 035327
$data = "0100031 35327 00002228 2144064 20200801 0430035604050430 0000000000 00BLT1 00000
0500031 35327 V4A +019.8 0.85220 14702.0 14643.0 01
1000031 35327 V4A 80 +018.8 0.85040 11026.0 10991.0 V2C 1
1000031 35327 V4A 80 +022.9 0.85760 03676.0 03652.0 V4B 1
0500031 35327 V4A +019.0 0.85220 15698.0 15647.0 01
1000031 35327 V4A 80 +017.9 0.85040 11774.0 11746.0 V2C 1
1000031 35327 V4A 80 +022.1 0.85760 03924.0 03901.0 V4B 1
2000031 35327 00002228 2144064 0052299.0 0052115.0 0017 035327
"
$data
Write-Host ""
Write-Host "Replacing number of lines"
Write-Host ""
$summaryline= $data -replace '(^0500031\s{5}\d{5}\s{20}V4A.{60})(\s\d{2}\s)(.{26})','$1 01 $3'
$summaryline
Write-Host ""
Write-Host "Matched lines"
Write-Host ""
$mat=$summaryline -match '^0500031.{30}V4A\s{17}(?<measure>.{43}).+\r\n10.{55}'
$mat
Write-Host ""
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。