PDA

Показать полную графическую версию : [решено] Как заменить четвертое вхождение в строке


Ortis
25-11-2012, 18:15
Как в PowerShell заменить определенное вхождение в текстовой строке?
Например, есть строка: "на оборотной стороне ворот втроая строка"
Необходимо получить: "на оборотной стороне ворот вторая строка"
При этом неизвестно сколько слов в строке, но известно что четвертое вхождение "ро" надо заменить на "ор".

Kazun
25-11-2012, 19:56
Проверить грамматику в тексте?

Ortis
25-11-2012, 21:18
Дело не в грамматике.
$Line = 'на оборотной стороне ворот втроая строка'
$Pattern = 'ро'
$replace = $Line -replace $Pattern, "($Pattern)"
$replace

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

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

Kazun
25-11-2012, 21:37
"на оборотной стороне ворот втроая строка" -replace "((.*?ро.*?){3})ро",'$1ор'

Ortis
25-11-2012, 21:54
Ну не знаю, наверное неудачный пример дал.
Ну хорошо.
.....9.....2.......6......8.....1
..3...5....9....1...2....7....7

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

Добавлено:

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




© OSzone.net 2001-2012