Powershell Удалите последнюю часть строки с несколькими "." - PullRequest
0 голосов
/ 16 октября 2019

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

Some/Stuff/Here/Then.drop.last

В идеале, я хочу написать регулярное выражение, которое дает мне просто:

Then.Drop

1 Ответ

3 голосов
/ 16 октября 2019
PS> 'Some/Stuff/Here/Then.drop.last' -replace '.*/(.+)\..*', '$1'
Then.drop
  • .*/ жадно сопоставляет все до last /

  • (.+)\. жадно сопоставляет все последний литерал . и захватывает все, что до этого . в первой группе захвата ($1) - что является вашей интересной строкой.

  • .* соответствует оставшейся части строки.

  • Использование $1 в качестве замещающей строки затем заменяет общее совпадение - всю входную строку - тем, с чем сопоставлялась первая группа захвата.

Для получения дополнительной информации об операторе PowerShell -replace см. этот ответ .

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