我不知道如何按字母順序排序字符串數組,然後按數字組合。下面是示例:如何按字母順序排序字符串數組然後按數字組合排序?
$a = @('aa101','aa11','ab10','ab9','a111','a22','a01')
我想看到的排序如下之後的結果:
a01 a22 a111 aa11 aa101 ab9 ab10
請幫我找出使用PowerShell腳本的答案。
我不知道如何按字母順序排序字符串數組,然後按數字組合。下面是示例:如何按字母順序排序字符串數組然後按數字組合排序?
$a = @('aa101','aa11','ab10','ab9','a111','a22','a01')
我想看到的排序如下之後的結果:
a01 a22 a111 aa11 aa101 ab9 ab10
請幫我找出使用PowerShell腳本的答案。
該Sort-Object
cmdlet可以將一個或多個腳本塊作爲其Property參數。第一個參數應在最後刪除所有的數字,然後刪除所有非數字和強制轉換爲整數:
$a |Sort-Object {"$_" -replace '\d',''},{("$_" -replace '\D','') -as [int]}
\d
是數字的正則表達式\D
是什麼的正則表達式不位數YES!非常感謝你,Mathias!我沒有意識到sort-object可以用逗號分隔兩個表達式。 我簡化了一些以節省一些打字。 $ a | Sort-Object {「$ _」-replace'\ d'},{[int](「$ _」-replace'\ D')} –
@LiangCui如果需要,還可以組合表達式和屬性名稱:'$ a | Sort-Object Length,{[int](「$ _」 - 替換'\ D','')}' –
是的。謝謝! –
排序算法你描述(按首字母排序,然後數),會產生不同的結果,你的榜樣 –
嗨,馬蒂亞斯,會是什麼結果,可請解釋? –
按照第一個字母對這些值進行排序對您描述的集合(它們都以'a'開頭)進行排序,按數字排序,您將首先獲得'a01'('01'爲'1',最小的數字爲那麼'ab9'(9是次小),然後是'ab10'等。 –