PowerShell排序数组

Kar*_*son 4 powershell

我的阵列吐了出来.

a10
a11
a12
a6
a7
a8
a9
Run Code Online (Sandbox Code Playgroud)

用于修复它的任何简短/简单代码:

a6
a7
a8
a9
a10
a11
a12
Run Code Online (Sandbox Code Playgroud)

Sha*_*evy 10

您可以按表达式排序,将第一个字母后的所有内容转换为整数:

$array | sort { [int]$_.substring(1)}
Run Code Online (Sandbox Code Playgroud)

您还可以通过删除任何非数字字符使解决方案更通用:

$array | sort { [int]($_ -replace '\D')}
Run Code Online (Sandbox Code Playgroud)


Joe*_*oey 5

在这种情况下最简单的方法是将所有数字填零并用于排序:

$a | sort {
  [Regex]::Replace($_, '\d+', 
  {
    $args[0].Value.PadLeft(10, '0')
  })
}
Run Code Online (Sandbox Code Playgroud)