【问题标题】:How to split a string in PowerShell如何在 PowerShell 中拆分字符串
【发布时间】:2014-07-27 22:05:39
【问题描述】:

这似乎应该相当简单,但我似乎无法弄清楚。我有一个看起来像这样的字符串:

$string = "blah blah; something"

我只想在分号和空格处将它们分开,但每当我尝试使用$string.split("; ") 进行操作时,它也会因为空格而分开字符串的前半部分。我假设我可能需要使用正则表达式,但没有很好地掌握它才能完成它。

【问题讨论】:

    标签: regex string powershell split


    【解决方案1】:

    System.String.Split 旨在拆分您给它的字符串中的每个字符:

    PS > $string = "blah blah; something"   
    PS > $string.Split('; b')  # This splits on ";", " ", and "b"
    
    lah
    
    lah
    
    something    
    PS >
    

    如果你想在"; "这样的模式上进行拆分,你应该使用-split operator

    PS > $string = "blah blah; something"
    PS > $string -split '; '
    blah blah
    something 
    PS > 
    

    【讨论】:

      【解决方案2】:

      ; 处简单地拆分字符串并从多余的空格中修剪结果如何?

      PS C:\> $string.split(';') | % { $_.trim()}
      blah blah
      something
      

      正则表达式当然也可以:

      [regex]::split($string, ";\s")
      blah blah
      something
      

      【讨论】:

      • 我什至没有考虑过修剪,效果很好。谢谢!
      【解决方案3】:

      假设在您的特定情况下无关紧要,您可以删除第二个空格。

      $string.Replace("; ", ";").Split(";")
      

      【讨论】:

        猜你喜欢
        • 2019-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-07
        • 2020-09-29
        • 2018-09-07
        • 2013-09-26
        相关资源
        最近更新 更多