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