PowerShell如何按完整字符串分割而非单个字符?
解决PowerShell中Split按完整字符串分割的问题
你的问题出在调用的是.NET String.Split(char[]) 重载——当你直接传字符串"target"时,它会被隐式转换成字符数组,把每个字符都当作独立分隔符。以下是几种可行的解决方案:
方法1:使用PowerShell原生-split运算符
这是最简便的方式,默认会把传入的字符串当作完整分隔符(若不含正则元字符):
"source target destination".ToLower() -split "target"
如果分隔符包含正则特殊字符(如.、*),可以添加SimpleMatch选项强制按字面匹配:
"source target destination".ToLower() -split "target", 0, "SimpleMatch"
方法2:调用.NET的String.Split(string[])重载
显式指定参数类型为字符串数组,避免被转换成字符数组:
"source target destination".ToLower().Split([string[]]@("target"), [System.StringSplitOptions]::None)
如果想忽略分割后产生的空结果,可以把None换成RemoveEmptyEntries。
内容的提问来源于stack exchange,提问作者apython
相关产品推荐
相关产品推荐

