我有一个字符串,已使用代码进行了拆分$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。