将字符串拆分为单独的变量

dav*_*ave 65 string powershell

我有一个字符串,我使用代码拆分$CreateDT.Split(" ").我现在想以不同的方式操纵两个单独的字符串.如何将这些变量分成两个变量?

mjo*_*nor 110

像这样?

$string = 'FirstPart SecondPart'
$a,$b = $string.split(' ')
$a
$b
Run Code Online (Sandbox Code Playgroud)

  • 如果您有`“ FirstPart SecondPart ThirdPart”`并且只需要两个,则可以使用`$ a,$ b = $ string.split('')[0,1]` (4认同)

von*_*ryz 41

使用-split运算符创建数组.像这样,

$myString="Four score and seven years ago"
$arr = $myString -split ' '
$arr # Print output
Four
score
and
seven
years
ago
Run Code Online (Sandbox Code Playgroud)

当您需要某个项目时,请使用数组索引来访问它.请注意,指数从零开始.像这样,

$arr[2] # 3rd element
and
$arr[4] # 5th element
years
Run Code Online (Sandbox Code Playgroud)

  • 或者等价地:`$ arr = @($ myString.split(''))` (6认同)
  • 也可以是单行代码:`$ first_word =(“ one-two-three” -split'-')[0]` (2认同)
  • @ sxc731:`.Split()`总是返回一个数组,因此不需要`@(...)`:`$ arr = $ myString.split('')`,但请注意,PowerShell惯用的更多解决方案$ arr = $ myString -split''`已经成为答案的一部分。但是要注意,`-split`需要一个_regex_并且不区分大小写(使用`-csplit`区分大小写)。 (2认同)

0xG*_*0xG 21

重要的是要注意两种技术之间的以下区别:

$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 
Run Code Online (Sandbox Code Playgroud)

从这里你可以看到string.split() 方法:

  • 执行区分大小写的拆分(注意"ALL RIGHT"他在"R"上的拆分​​但"破坏"不会拆分在"r"上)
  • 将字符串视为要拆分的可能字符列表

-split 运营商:

  • 执行不区分大小写的比较
  • 只分裂整个字符串

  • 这些是很好的区别。另一个重要的问题是-split将_regex_(正则表达式)作为其(第一个)RHS操作数,而[string]类型的.Split()方法则对_literal_字符/字符数组/和进行操作。 -在.NET _Core_中-也是文字_string_。另外,请注意,PowerShell中的正确语法是`$ Str -split'&lt;BR /&gt;'`;。在这种情况下,伪方法语法`$ Str -Split(“ &lt;BR /&gt;”“)只能工作,但应避免这种情况。 (3认同)

Esp*_*o57 6

尝试这个:

$Object = 'FirstPart SecondPart' | ConvertFrom-String -PropertyNames Val1, Val2
$Object.Val1
$Object.Val2
Run Code Online (Sandbox Code Playgroud)

  • @danstermeister:通常,使用 _cmdlet_ 进行简单的字符串拆分是低效的。具体来说,`ConvertFrom-String` 已经过时,应该避免使用(它总是有一种实验性的感觉,事实上它没有被包含在 PowerShell Core 中,而 PowerShell Core 是未来开发工作的重点,这表明它不会留下来)。至于额外操作的需要:解构赋值会做:`$val1, $val2 = 'FirstPart SecondPart' -split ' '` (2认同)