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

时间:2013-03-06 11:58:20

标签: regex powershell

"-dhello;-egoodbye;-lcul8r" -replace "-d.*;","-dbonjour;"

给出:

-dbonjour;-lcul8r

是否有可能不让它摆脱goodbye

2 个答案:

答案 0 :(得分:22)

您应该使用?进行匹配延迟。

使用:

"-dhello;-egoodbye;-lcul8r" -replace "-d.*?;","-dbonjour;"

答案 1 :(得分:5)

始终明确。 .*匹配它可以包含的所有内容(包括分号和后面的所有内容),但您只想匹配 next 分号,所以只需告诉正则表达式引擎:

"-dhello;-egoodbye;-lcul8r" -replace "-d[^;]*;","-dbonjour;"

[^;]匹配分号外的所有字符。