You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取PowerShell字符串中第一个'-'之后的全部内容?

提取PowerShell字符串中第一个'-'之后的内容

首先注意你的原始代码里$Student变量赋值存在语法错误,需要用引号包裹字符串(否则PowerShell会把Student01当作命令处理),修正后的基础代码如下:

$TodayDate = Get-Date -Format "dd-MM-yyyy"
$Student = "Student01 - Project 01-02 - $TodayDate"
$fullOutput = "$Student - was delivered!"

要提取第一个-之后的所有内容,可使用以下几种方法:

方法1:使用-split并指定分割次数

-split默认会分割所有匹配的字符,指定第二个参数为2时,只会在第一个匹配的-处分割字符串,之后取第二部分并去除开头多余空格:

$result = ($fullOutput -split '-', 2)[1].TrimStart()
Write-Host $result

方法2:结合IndexOf和Substring

先找到第一个-的索引位置,再从该位置的下一位开始截取子字符串,最后去除开头空格:

$firstDashPos = $fullOutput.IndexOf('-')
$result = $fullOutput.Substring($firstDashPos + 1).TrimStart()
Write-Host $result

方法3:正则表达式匹配

通过正则表达式匹配第一个-之后的所有内容,利用$matches获取捕获的结果:

if ($fullOutput -match '^[^-]+-(.*)$') {
    $result = $matches[1].TrimStart()
}
Write-Host $result

以上三种方法都能输出你想要的结果:Project 01-02 - dd-MM-yyyy - was delivered

内容的提问来源于stack exchange,提问作者Tyrone Hirt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 17:40:18