正则表达式,在反斜杠字符之前停下来吗?

时间:2019-05-07 12:07:31

标签: regex

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

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

我将此正则表达式应用于该字符串:

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

我想要这个结果:

= C:\ app \ client \ Administrateur

但是我有这个结果:

= C:\ app \ client \ Administrateur \

怎么说我想在下一个反斜杠前停下来的正则表达式?

1 个答案:

答案 0 :(得分:1)

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

要匹配app\client\之后但不包括最后一个反斜杠的内容,可以使用negated character class匹配而不是反斜杠:

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

Regex demo

如果开头的.*部分不能包含反斜线,则这是防止不必要的回溯的另一种选择,因为.*会首先匹配到字符串的末尾:

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

Regex demo