gpt4 book ai didi

.net - 如何将字符串拆分为没有多个空格的字符串数组

转载 作者:行者123 更新时间:2023-12-02 23:12:50 28 4
gpt4 key购买 nike

我有一个来自文本框的字符串$x:
enter image description here

我想将此字符串拆分为不带'*'的字符串数组。

我运行:$a = $x.Split("*"),但是在“7-zip”中收到了两个空格:
enter image description here

建议1:
他们建议用户使用-split Here,但使用时却收到了一个字符串( chars 数组),而不是字符串数组:
enter image description here

建议2:
他们建议在this博客和this问题中使用[System.StringSplitOptions]::RemoveEmptyEntrie + foreach(在博客中)来解析不需要的空间。
我试过了:

$option = [System.StringSplitOptions]::RemoveEmptyEntries
$b = $x.Split("*", $option) |foreach {
$_.Split(" ", $option)
}

但是没有帮助:
enter image description here

如何将字符串拆分为以“*”分隔的字符串数组?

最佳答案

如您所知,您可以使用*删除最后一次出现的[StringSplitOptions]::RemoveEmptyEntries之后的“空白”条目。

现在,要删除单词周围的多余空间,您需要做的就是调用Trim():

$x = @"
ccleaner*
7-zip*
"@

$Words = $x.Split('*',[StringSplitOptions]::RemoveEmptyEntries) | ForEach-Object {
$_.Trim()
}

PS C:\> $Words[0]
ccleaner
PS C:\> $Words[0]
7-zip
PS C:\>

您还可以使用 -split(您只需要一个 \即可转义 *),然后使用 Where-Object过滤出空条目:
"a*b* *c" -split "\*" | Where-Object { $_ -notmatch "^\s+$" }| ForEach-Object { $_.Trim() }

或反过来(删除空格后使用 Where-Object):
"a*b* *c" -split "\*" | ForEach-Object { $_.Trim() } | Where-Object { $_ }

您还可以使用 -replace删除开头和结尾的空格(基本上是 Trim()的正则表达式版本):
" a b " -replace "^\s+|\s+$",""
# results in "a b"

关于.net - 如何将字符串拆分为没有多个空格的字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31764593/

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