Powershell заменяет проблему - PullRequest
       3

Powershell заменяет проблему

0 голосов
/ 10 января 2019

Возникают проблемы с написанием регулярного выражения в PowerShell для замены следующих нескольких вхождений ниже в файле. Это единственные символы в этих строках

]

[

Я хочу заменить обе скобки запятой

перед:

]

[

после

,

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Чтобы RegEx рассматривал ваш ввод из файла как одну строку, вам нужно либо использовать Get-Content с параметром -raw (PSv3 +)
-или-

используйте -join для объединения массива строк в одну строку.

Использование всего текста вопроса, хранящегося в файле sample.txt:

> (Get-Content .\sample.txt -raw) -replace '\][\r\n]+\[',','


Having troubles in PowerShell writing the regex to replace the following multiple occurrences of the below inside a file. They are the only characters on those lines

,

I want to replace both brackets with a comma

before:

,

after:

,

Any suggestions?
0 голосов
/ 10 января 2019

Я полагаю, вы используете MS Windows, в которой (и MS-DOS) новая строка помечена с последующими Возврат каретки (\r) и Перевод строки (\n) символы, которым вы должны соответствовать дважды из-за пустой строки.

Поскольку квадратные скобки являются специальными символами в регулярных выражениях, вы должны экранировать их с помощью \, а также включать модификатор m для многострочного соответствия:

$s -replace "(?m)\[\r\n\r\n\]", ","
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...