Thread Komplexer sort (natürliche Sortierung) (13 answers)
Opened by Student87 at 2012-11-23 17:10

GUIfreund
 2012-11-29 14:11
#163742 #163742
User since
2011-08-08
559 Artikel
BenutzerIn
[default_avatar]
2012-11-29T11:56:06 Linuxer
Code (perl): (dl )
1
2
3
4
5
my @sorted = sort {
        my ($chr_a, $num_a) = $a =~ m/^([a-z]+)(\d+)/;
        my ($chr_b, $num_b) = $b =~ m/^([a-z]+)(\d+)/;
        $chr_a cmp $chr_b || $num_a <=> $num_b
} @list;

Schon fast richtig, man muss nur noch dafür sorgen, dass die Regexe immer matchen:
Code (perl): (dl )
1
2
3
4
5
my @sorted = sort {
        my ($chr_a, $num_a) = $a =~ m/^([a-z]+)(\d*)/i;
        my ($chr_b, $num_b) = $b =~ m/^([a-z]+)(\d*)/i;
        $chr_a cmp $chr_b || $num_a <=> $num_b
} @list;

Ergebnis:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
chr1
chr1
chr1
chr2
chr2
chr2
chr10
chr10
chr10
chr10
chrX
chrX
chrX
chrX
chrY
chrY
chrY
Gruß
GUIfreund

View full thread Komplexer sort (natürliche Sortierung)