PowerShell - [решено] Как заменить четвертое вхождение в строке

Ответить
Аватара пользователя
Ortis

PowerShell - [решено] Как заменить четвертое вхождение в строке

Сообщение Ortis »

Как в PowerShell заменить определенное вхождение в текстовой строке?

Например, есть строка: "на оборотной стороне ворот втроая строка"

Необходимо получить: "на оборотной стороне ворот вторая строка"

При этом неизвестно сколько слов в строке, но известно что четвертое вхождение "ро" надо заменить на "ор".
Аватара пользователя
Kazun

Re: PowerShell - [решено] Как заменить четвертое вхождение в строке

Сообщение Kazun »

Дело не в грамматике.



Код:

Код: Выделить всё

$Line = 'на оборотной стороне ворот втроая строка'
$Pattern = 'ро'
$replace = $Line -replace $Pattern, "($Pattern)"
$replace

на обо(ро)тной сто(ро)не во(ро)т вт(ро)ая ст(ро)ка



Как в четвертом вхождении регулярного выражения поставить Error. Или, например, во втором три звездочки.
Аватара пользователя
Kazun

Re: PowerShell - [решено] Как заменить четвертое вхождение в строке

Сообщение Kazun »

"на оборотной стороне ворот втроая строка" -replace "((.*?ро.*?){3})ро",'$1ор'
Аватара пользователя
Ortis

Re: PowerShell - [решено] Как заменить четвертое вхождение в строке

Сообщение Ortis »

Ну не знаю, наверное неудачный пример дал.

Ну хорошо.


Цитата:



.....9.....2.......6......8.....1

..3...5....9....1...2....7....7



точки в строках считать буквами,

как вместо 4 -той по порядку цифры в каждой строке поставить 2012 ?



Добавлено:



Ой, уже ответили, извиняюсь, не обновил страницу.

Kazun, большое спасибо!
Ответить

Вернуться в «Скриптовые языки администрирования Windows»