如何从PowerShell中的字符串中获取交替的字符?

Mad*_*dan 2 string powershell character

我正在编写一个脚本,我必须从字符串中读取交替的字符.

我使用以下方法:

$s = "abcdef"
$chars = $s.ToCharArray()
For( $i = 0; $i -lt $chars.Count; $i = $i + 2){
    $chars[$i]
}
Run Code Online (Sandbox Code Playgroud)

是否有更简单的方法,尤其是基于管道的方法?

Mar*_*ndl 5

您可以使用一个简单的正则表达式(演示)来匹配两个字符,并将其替换为第一个字符:

 $s -replace '(.).', '$1'
Run Code Online (Sandbox Code Playgroud)

输出:

ace
Run Code Online (Sandbox Code Playgroud)

如果你想拥有角色,只需将其投射到char[]:

[char[]] ($s -replace '(.).', '$1')
Run Code Online (Sandbox Code Playgroud)

拆分字符串(感谢PetSerAl):

$s -replace '(.).', '$1' -split '(?!^|$)'
Run Code Online (Sandbox Code Playgroud)

  • `-split''` - >`-split'(?!^ | $)'`不产生两个空字符串. (2认同)