我有一个字符串,已使用代码进行了拆分$CreateDT.Split(" ")。我现在想以不同的方式操作两个单独的字符串。如何将它们分为两个变量?
看到类似stackoverflow.com/questions/11348506/...
—
迈克尔Freidgeim
我有一个字符串,已使用代码进行了拆分$CreateDT.Split(" ")。我现在想以不同的方式操作两个单独的字符串。如何将它们分为两个变量?
Answers:
像这样?
$string = 'FirstPart SecondPart'
$a,$b = $string.split(' ')
$a
$b
"FirstPart SecondPart ThirdPart"只有两个,可以使用$a,$b = $string.split(' ')[0,1]
用-split运算符创建一个数组。像这样
$myString="Four score and seven years ago"
$arr = $myString -split ' '
$arr # Print output
Four
score
and
seven
years
ago
当您需要某个项目时,请使用数组索引来达到它。注意该索引从零开始。像这样
$arr[2] # 3rd element
and
$arr[4] # 5th element
years
$arr = @($myString.split(' '))
$first_word = ("one-two-three" -split '-')[0]
.Split()总是返回一个数组,因此不需要@(...):$arr = $myString.split(' '),但是请注意,更多PowerShell惯用的解决方案$arr = $myString -split ' '已经是答案的一部分。但是请注意,它-split需要一个正则表达式并且不区分大小写(-csplit用于区分大小写的拆分)。
重要的是要注意两种技术之间的以下区别:
$Str="This is the<BR />source string<BR />ALL RIGHT"
$Str.Split("<BR />")
This
is
the
(multiple blank lines)
source
string
(multiple blank lines)
ALL
IGHT
$Str -Split("<BR />")
This is the
source string
ALL RIGHT
从中您可以看到该string.split() 方法:
而-split 操作员:
-split将正则表达式(正则表达式)作为其(第一个)RHS操作数,而该[string]类型的.Split()方法对文字字符/字符数组/以及.NET Core中的文字字符串进行操作。另外,请注意,PowerShell中的正确语法是$Str -split '<BR />'; 而伪方法语法$Str -Split("<BR />") 恰好工作在这种情况下,是要避免的。
试试这个:
$Object = 'FirstPart SecondPart' | ConvertFrom-String -PropertyNames Val1, Val2
$Object.Val1
$Object.Val2
ConvertFrom-String已过时,应避免使用(它始终具有实验意义,并且尚未将其包含在PowerShell Core中,因为后者将集中在将来的开发工作上,这表明它不再存在)。至于需要额外的操纵:销毁工作将:$val1, $val2 = 'FirstPart SecondPart' -split ' '
ConvertFrom-String的固有问题都是有理由避免的。这尤其适用于基于模板的解析,但即使是基于分隔符的解析是有缺陷的,因为类型推断是不约而同地应用-见stackoverflow.com/a/50166580/45375。