是否有可能使正则表达式取代非贪婪?

muh*_*mud 14 regex powershell

"-dhello;-egoodbye;-lcul8r" -replace "-d.*;","-dbonjour;"
Run Code Online (Sandbox Code Playgroud)

得到:

-dbonjour;-lcul8r
Run Code Online (Sandbox Code Playgroud)

是不是可以摆脱它goodbye

dea*_*ock 23

你应该使用匹配的懒惰?.

使用:

"-dhello;-egoodbye;-lcul8r" -replace "-d.*?;","-dbonjour;"
Run Code Online (Sandbox Code Playgroud)


Tim*_*ker 5

永远明确..*匹配它可以包含的一切(包括分号和后面的所有内容),但是你只想匹配到下一个分号,所以只需告诉正则表达式引擎:

"-dhello;-egoodbye;-lcul8r" -replace "-d[^;]*;","-dbonjour;"
Run Code Online (Sandbox Code Playgroud)

[^;]匹配 分号以外的任何字符.