Можно ли заменить Regex неживым? "-dhello;-egoodbye;-lcul8r" -replace "-d.*;","-dbonjour;" дает: -dbonjour;-lcul8r Можно ли избавиться от goodbye? Ответ 1 Вы должны сделать совпадение ленивым, используя ?. Использование: "-dhello;-egoodbye;-lcul8r" -replace "-d.*?;","-dbonjour;" Ответ 2 Всегда быть явным. .* соответствует всем возможностям (включая точку с запятой и все, что следует), но вы хотите только совпадение до следующей точки с запятой, поэтому просто сообщите движку регулярных выражений, что: "-dhello;-egoodbye;-lcul8r" -replace "-d[^;]*;","-dbonjour;" [^;] соответствует любому символу, кроме точки с запятой.
Ответ 1 Вы должны сделать совпадение ленивым, используя ?. Использование: "-dhello;-egoodbye;-lcul8r" -replace "-d.*?;","-dbonjour;"
Ответ 2 Всегда быть явным. .* соответствует всем возможностям (включая точку с запятой и все, что следует), но вы хотите только совпадение до следующей точки с запятой, поэтому просто сообщите движку регулярных выражений, что: "-dhello;-egoodbye;-lcul8r" -replace "-d[^;]*;","-dbonjour;" [^;] соответствует любому символу, кроме точки с запятой.