在PowerShell中拆分不带分隔符的字符串

Pra*_*vin 3 string powershell split powershell-2.0

我想分割一个字符串并将结果标记存储在变量中.

例如,我的字符串是160519的,我想它在一个分裂的方式16,0519存储在单独的变量.

我尝试使用-split,但由于我的字符串没有分隔符,我发现很难切割字符串.

Paa*_*rth 7

如果你使用正则表达式,你实际上可以像这样拆分字符串.

$arr = $string -split "(..)" -ne ""
Run Code Online (Sandbox Code Playgroud)

.匹配任何单个字符.然后,我们需要过滤数组以删除空值-ne ""(即感谢mklement0,以替换建议| ? {$_}).

在行动:

C:\Users\Paarth> $string = "160519"
C:\Users\Paarth> $arr = $string -split "(..)" -ne ""
C:\Users\Paarth> $arr
16
05
19
C:\Users\Paarth>
Run Code Online (Sandbox Code Playgroud)

  • @JasonBoyd:放置它的另一种方法:在正则表达式中添加一个_capture group_(`(())`使`-split`捕获并返回_separators too_; 例如:`'ab:c'-split'([.:])'` - >`@('a','.','b',':','c')`.这里,分隔符正则表达式的匹配消耗整个字符串,在它们之间只留下_empty_字段,必须将其除去.简而言之:它是一种聪明但有些模糊的`-split`重用:通常用于捕获_separators_的功能用于捕获_data_. (3认同)