Powershell SWITCH и REGEX - PullRequest
       0

Powershell SWITCH и REGEX

0 голосов
/ 09 ноября 2018

Привет, кто-нибудь может мне помочь, я застрял и не могу заставить регулярное выражение работать с powershell и оператором switch. Не могу найти в Интернете ничего полезного.

Как я могу отфильтровать, например, IP или строку из 7-8 цифр?

switch -regex ($buffer)
{
   ($buffer -match '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')
   {}

   ($buffer -match {'\d{7,8}'})
   {}
}

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

При использовании в режиме -regex PowerShell ожидает, что условием обращения будет шаблон регулярного выражения, ничего больше:

switch -regex ($buffer)
{
   '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
   {
       # looks kinda like an IP
   }

   '\d{7,8}'
   {
       # just numbers
   }
}
0 голосов
/ 09 ноября 2018

Используйте фигурные скобки вместо скобок и вообще не указывайте переменную для параметра switch:

switch (1)
{
   { $buffer -match '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' }
   { Write-Output "IP Address" }

   { $buffer -match '\d{7,8}' }
   { Write-Output "7-8 digits" }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...