Replace a text part in textfile

Aus Wiki-WebPerfect
Wechseln zu: Navigation, Suche

Goal

Replace the text part between ### Test: and ###.

Regex

(?<=<YourStartString>)(.|\n)*(?=<YourEndString>)

Example for a text part:

### Test
This Text will
changed with the following
PowerShell Skript
###

Regex for the example text part below:

(?<=\#\#\#\.Test)(.|\n)*(?=\#\#\#)


PowerShell Skript

$FileToChangePath = "C:\Temp\FileToChange.txt"
$FileToChange = Get-Content $FileToChangePath -Raw
 
$TemplateTextPartPath = Get-Content "C:\Temp\TemplateTextPart.txt" -Raw
 
$RegexSearch = "### Test" #Search the head of text part
$RegexReplace = "(?<=\#\#\#\.Test)(.|\n)*(?=\#\#\#)"
 
If ($FileToChange -match $RegexSearch) {
    Write-Host "The text part in the file has been changed." -ForegroundColor Green
    $ChangeTextPart = $FileToChange -replace $RegexReplace, ("`r`n" + $TemplateTextPartPath + "`r`n")
    Set-Content -Path $FileToChangePath -Value $ChangeTextPart
} Else {
    Write-Host "The text part in the file has been added." -ForegroundColor Yellow
    Add-Content -Path $FileToChangePath -Value ("`r`n" + "`r`n" + "`r`n" + "`r`n" + "### Test" + "`r`n" + $TemplateTextPartPath + "`r`n" + "###" ) -PassThru
}


Regex101: https://regex101.com/