首页 > 解决方案 > 从字符串中删除最后两个单词

问题描述

我想从下面的字符串中删除最后两个单词

在此处输入图像描述

'BIOS 更新 - 惠普'

也应该被删除,但我通过做这部分工作

$HPBIOSs.name.replace('BIOS Update - Hewlett-Packard','').trim()

这给了我:

在此处输入图像描述

我通过以下方式让它工作:

"$(([string]$HPBIOSs.name.replace('BIOS Update - Hewlett-Packard','').Split(" ")[0..($HPBIOSs.name.replace('BIOS Update - Hewlett-Packard','').Split(" ").count-3)]).Trim())"

有没有更好的存档方法?我在 switch 语句中使用它,所以我希望它在一个衬里

标签: powershellreplacesplit

解决方案


您可以-replace为此使用正则表达式。

$HPBIOSs.name -replace "(\s\S+){2}$"

解释:

  • \s匹配单个空格字符
  • \S+匹配任何非空白字符一次或多次 ( +)
  • {2}完全匹配().
  • $在字符串末尾断言位置

推荐阅读