首页 > 解决方案 > 正则表达式,在反斜杠字符之前停止?

问题描述

我想使用正则表达式替换powershell中文件中的字符串,这是正则表达式:

=.*\\app\\client\\.*\\

我在那个字符串上应用了这个正则表达式:

HOME= C:\app\client\Administrateur\product

我想要这个结果:

= C:\app\client\Administrateur

但我有这个结果:

= C:\app\client\Administrateur\

如何对正则表达式说我想在下一个反斜杠之前停止?

标签: regex

解决方案


您的模式=.*\\app\\client\\.*\\将匹配最后一次出现的\app\client\,然后匹配直到最后一次出现正斜杠。

要匹配后面app\client\但不包括最后一个反斜杠的内容,您可以使用匹配而不是反斜杠的否定字符类

=.*\\app\\client\\[^\\]*

正则表达式演示

如果.*开头的部分不能包含反斜杠,这将是防止不必要的回溯的另一个选项,因为.*它将首先匹配到字符串的结尾:

=[^\\]*\\app\\client\\[^\\]*

正则表达式演示


推荐阅读