只保留前 3 个项目
keep only 3 first items
我正在尝试对列表进行排序并仅获取提供 3 个分隔符的元素
示例:
paris/sales/
paris/sales/14tharrdt/
paris/sales/14tharrdt/shop1/
paris/sales/14tharrdt/shop2/
london/direction/
london/direction/boss/
london/direction/boss/secretary/
london/direction/boss/secretary/official/
london/direction/boss/CEO/
new-york/direction/boss/
new-york/direction/boss/delegation/
london/otherservice/office1/
paris/service1/test/
new-yotk/service1/test/
我只想保留以下项目:
london/otherservice/office1/
paris/service1/test/
new-yotk/service1/test/
只有 3 个分隔符的行,后面没有任何内容
有没有办法用 PowerShell 做到这一点?
就这么简单:
$array |Where-Object { $_.split("/").length -eq 4 }
我同意Gerald Schneider,不需要在这里使用regex
。但如果你愿意,这里有一个解决方案:
$array | Where { $_ -match '^(?:[^\/]+\/){3}$' }
正则表达式的解释:
^(?:[^\/]+\/){3}$
我正在尝试对列表进行排序并仅获取提供 3 个分隔符的元素 示例:
paris/sales/
paris/sales/14tharrdt/
paris/sales/14tharrdt/shop1/
paris/sales/14tharrdt/shop2/
london/direction/
london/direction/boss/
london/direction/boss/secretary/
london/direction/boss/secretary/official/
london/direction/boss/CEO/
new-york/direction/boss/
new-york/direction/boss/delegation/
london/otherservice/office1/
paris/service1/test/
new-yotk/service1/test/
我只想保留以下项目:
london/otherservice/office1/
paris/service1/test/
new-yotk/service1/test/
只有 3 个分隔符的行,后面没有任何内容
有没有办法用 PowerShell 做到这一点?
就这么简单:
$array |Where-Object { $_.split("/").length -eq 4 }
我同意Gerald Schneider,不需要在这里使用regex
。但如果你愿意,这里有一个解决方案:
$array | Where { $_ -match '^(?:[^\/]+\/){3}$' }
正则表达式的解释:
^(?:[^\/]+\/){3}$