![]() |
Regex работает непонятно
Привет!
Мне нужно, чтобы регулярка превращала всё в "Скопировано". Почему так работает? Код:
("Скопирован","Скопирована") -replace 'а?$','о' |
если нету "а", просто добавить "о"? Ну.. он и добавляет..
|
Для этого слова:
Цитата:
|
Надо просто отделить окончание строки от вариантов: либо последний символ "a", либо нет (но так, чтобы в этом случае он не захватывался):
Код:
("Скопирован","Скопирована") -replace '(а|(?<!а))$','о' |
Цитата:
чтобы предусмотреть возможные ошибки с наибольшим количеством вариантов с конкретным словом, можно сделать примерно так: Код:
("Скопирован","Скопирована","Скопированаа","Скопирайчено","хренькакая","Скопипастчено что-то","оскопили") -replace '\bскопи[^\n ]*\b$','Скопировано' |
|
Цитата:
Цитата:
Пронаблюдать можно здесь: https://regex101.com/r/3UqiIK/1 - просто соответствия (Match 1 и Match 2) https://regex101.com/r/oWo0L5/1 - соответствия с заменой |
Время: 16:05. |
Время: 16:05.
© OSzone.net 2001-