回答
您可以通過表達排序,第一個字母后,採取一切,它轉換爲整數:
$array | sort { [int]$_.substring(1)}
您也可以讓解決方案更加通用的通過移除任何非數字字符:
$array | sort { [int]($_ -replace '\D')}
最簡單的方法在這種情況下將是零墊的所有號碼,並利用它來進行排序:
$a | sort {
[Regex]::Replace($_, '\d+',
{
$args[0].Value.PadLeft(10, '0')
})
}
我明白爲什麼你有你的聲望如此之高,優秀的回答 – 2012-03-01 15:33:41
@Joey $ a |排序{$ _ -replace'\ d +',$ _。padleft(10,'0')}是否一樣好?或者這種方式有什麼問題? – 2012-03-01 16:08:07
有。 '$ _'指的是完整的項目,而不是你的情況。因此結果不是'a0000000001',而是'a00000000a1'。它可能停止在字符串中使用多個數字,儘管現在我太累了,無法嘗試。上面的解決方案應該產生一個「自然」排序,幾乎包含任何包含數字的字符串列表。 – Joey 2012-03-02 00:32:30
這是十六進制值,對不對? ;-)
$array | sort {[convert]::toint32("$_",16)}
- 1. 排序陣列
- 2. 排序陣列
- 3. 排序陣列
- 4. 排序陣列
- 5. 排序陣列
- 6. 排序陣列
- 7. 排序陣列
- 8. 排序陣列
- 9. 排序陣列
- 10. 排序陣列
- 11. 排序陣列
- 12. ruby排序陣列
- 13. 雙排序陣列
- 14. Javascript排序陣列
- 15. iPhone排序陣列
- 16. 排序陣列AS3
- 17. Android陣列排序
- 18. 排序NsMutable陣列
- 19. Smarty排序陣列
- 20. 無陣列排序
- 21. PHP排序陣列
- 22. F#排序陣列
- 23. 排序子陣列
- 24. 排序陣列 - PHP
- 25. 排序蟒陣列
- 26. 排序陣列array.sort
- 27. 堆排序陣列
- 28. PHP排序陣列
- 29. 排序Multideminsional陣列
- 30. Java排序陣列
你的第二行「$ array | sort {[int]($ _ -replace'\ D')}」能夠修復填充了「2012-03-02_log-X.txt」的數組。謝謝! – 2012-03-02 13:35:24
供參考:如果你只是有一個字符串數組(和智能編號是一個問題),所有你需要的是'$ array | sort' – JoeBrockhaus 2015-08-31 17:52:28