"-dhello;-egoodbye;-lcul8r" -replace "-d.*;","-dbonjour;"
gibt:Ist es möglich zu machen Regex ersetzen nicht gierig?
-dbonjour;-lcul8r
Ist es möglich, sie nicht zu haben, von goodbye
loswerden?
"-dhello;-egoodbye;-lcul8r" -replace "-d.*;","-dbonjour;"
gibt:Ist es möglich zu machen Regex ersetzen nicht gierig?
-dbonjour;-lcul8r
Ist es möglich, sie nicht zu haben, von goodbye
loswerden?
sollten Sie die passende machen faul ?
verwenden.
Verwendung:
"-dhello;-egoodbye;-lcul8r" -replace "-d.*?;","-dbonjour;"
immer explizit sein. .*
passt alles, was es kann (einschließlich des Semikolon und alles, was folgt), aber Sie wollen nur bis zum nächsten Semikolon entsprechen, so dass nur die Regex-Engine sagen, dass:
"-dhello;-egoodbye;-lcul8r" -replace "-d[^;]*;","-dbonjour;"
[^;]
jedes Zeichen außer Semikolon.
Obwohl dies in diesem Fall funktioniert, es war nur ein Beispiel. Ich war wirklich auf der Suche nach einem Schalter, um die Gier abzuschalten. Aber, danke, es ist immer noch ein nützlicher Rat. – muhmud
@muhmud: Sicher. Ich wollte nur ausdrücken, dass Nicht-Gerede nicht unbedingt "die kürzest mögliche Übereinstimmung" bedeutet. Sie erhalten das nur, wenn Sie genau angeben, was der Übereinstimmungsinhalt sein soll. Zum Beispiel wird '<.*?>' mit '
Genau das, was ich gesucht habe, danke! – muhmud