gpt4 book ai didi

string - PowerShell 我想在特定字符序列后截断一个字符串

转载 作者:行者123 更新时间:2023-12-05 02:33:55 25 4
gpt4 key购买 nike

我正在尝试解析一个字符串变量,其中 -354 之后的所有内容都被截断。

我有这样的变量:NameOfFile-354-XX.pdf

其中 NameOfFile 可以是任意长度,-XX 可以是任何长度,也可以根本不存在。

我希望这个变量的输出是:NameOfFile-354

如何剪切变量以使其在 -354 之后剪切?

到目前为止我尝试了什么:

$FileArray = @("Name1-354-03.pdf", "Name23-354-H11.pdf", "Name354-354-02.pdf", "Name3545-354.pdf")
ForEach ($n in $FileArray){
Write-Host $n.Substring(0, $n.lastIndexOf('-354'))
}

我希望输出是这样的:

Name1-354
Name23-354
Name354-354
Name3545-354

感谢您的帮助。

最佳答案

假设 -354 是一个常量值:

$FileArray = [System.IO.FileInfo[]]@(
"Name1-354-03.pdf", "Name23-354-H11.pdf", "Name354-354-02.pdf", "Name3545-354.pdf"
)
$FileArray.ForEach({ $_.Name -replace '(?<=-354).*(\.pdf)', '$1' })

# Outputs:
Name1-354.pdf
Name23-354.pdf
Name354-354.pdf
Name3545-354.pdf

对于正则表达式的解释:https://regex101.com/r/4Butm2/1

关于string - PowerShell 我想在特定字符序列后截断一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70853612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com