如何从PowerShell中的选择字符串获取匹配值

时间:2018-07-04 12:23:18

标签: powershell

我想从输出中获取版本号,但是我得到了整行。

$version = $output | Select-String -Pattern "r\d\d\d\d\d"

哪条线找到了我的模式eq:

  

“您的应用程序版本为r11111,请考虑更新”

如何仅获取版本eq的值:

  

r11111

3 个答案:

答案 0 :(得分:6)

尝试一下:

fos_user:
db_driver: orm
firewall_name: main
user_class: AppBundle\Entity\User
service:
        user_manager: pugx_user_manager
from_email:
        address: "%mailer_user%"
        sender_name: "%mailer_user%"
pugx_multi_user:
users:
      simple_user:
          entity:
              class: AppBundle\Entity\SimpleUser
          registration:
              form:
                  type: AppBundle\Form\SimpleUserType
                  name: fos_user_registration_form
                  validation_groups:  [Registration, Default]
              template: AppBundle:Registration:simple_user.form.html.twig
society_user:
          entity:
              class: AppBundle\Entity\SocietyUser
          registration:
              form:
                  type: AppBundle\Form\SocietyUserType
                  name: fos_user_registration_form
                  validation_groups:  [Registration, Default]
              template: AppBundle:Registration:society_user.form.html.twig

答案 1 :(得分:3)

使用正则表达式匹配:

$output -match "r\d{5}"; $version = $Matches[0]

答案 2 :(得分:0)

我使用正则表达式找到了解决方案

$version = [regex]::match(($output | Select-String -Pattern "-r\d\d\d\d\d"),
                           "\-([^\)]+)\-").Groups[1].Value