Регекс, остановись перед символом обратной косой черты? - PullRequest
2 голосов
/ 07 мая 2019

Я хочу использовать регулярное выражение для замены строки в файле в powershell, это регулярное выражение:

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

Я применил это регулярное выражение к этой строке:

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

И я хочу этот результат:

= C: \ app \ client \ Administrateur

Но у меня есть такой результат:

= C: \ app \ client \ Administrateur \

Как сказать регулярному выражению, что я хочу остановиться до следующей обратной косой черты?

1 Ответ

1 голос
/ 07 мая 2019

Ваш шаблон =.*\\app\\client\\.*\\ будет соответствовать последнему вхождению \app\client\, а затем будет соответствовать до последнего вхождения прямой косой черты.

Чтобы соответствовать тому, что следует после app\client\, но не включает последнюю обратную косую чертувы могли бы использовать класс отрицательных символов , не имеющий обратной косой черты:

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

Regex demo

Если .* часть в началене может содержать обратную косую черту, это был бы еще один вариант предотвращения ненужного обратного отслеживания, потому что .* будет сначала соответствовать до конца строки:

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

Regex demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...