#regex #powershell
#регулярное выражение #powershell
Вопрос:
У меня есть файл, подобный:
CF1 mytextmytextmytextmytextmytextmytext
CF2 mytextmytextmytextmytextmytextmytextmytextmytextmytextmytextmy
CF3 mytextmytextmytextmytextmytextmytextmytextmytextmytextmytextmytextmytext
CF4 mytextmytextmytextmextmytextmytextmytextmytextmytextmytextmytextmytextmyt
mytextmytextmytextmytextmytextmytextmytextmytextmytextmytextmytextmytext
CF5 mytextmytextmytextmytextmytextmytext
Мне нужно удалить новую строку из строки CF4.
Я пытаюсь использовать этот код, но он не удаляет этот разрыв строки:
$content = [System.IO.File]::ReadAllText( "MyFile.txt" )
$content = $content -replace "(`n|`r)?!CF", "CF" Write-Host $content
Комментарии:
1. Попробуйте
$content -replace '(?m)r?n(?!s*CF)'
Ответ №1:
Вы можете использовать
(Get-Content $filepath -Raw) -replace "(?>rn?|n)(?!CF)", "" > $filepathout
(?>rn?|n)
— последовательность окончания строки CRLF, LF или CR(?!CF)
— отрицательный прогноз, который не соответствует, если естьCF
подстрока непосредственно справа от текущего местоположения.
Перед:
После: