sort - will mir das jemand erklaeren?

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/sort_will_mir_das_jemand_erklaeren_186308/page_1 - zur Vollversion wechseln!


COLOSSUS schrieb am 10.10.2007 um 17:45

Ich schreibe heute schon seit ueber 7 Stunden quasi nonstop awk und auch regex, und langsam glaube ich, dass ich endgueltig zu spinnen anfange. Grade wollte ich, zum Zwecke reiner Kosmetik, meine kleine Regex-Lookup-Table lexikographisch sortieren. Mit folgendem Ergebnis:

Code:
colo@ibmt40:~/devstuff/csvalid$ sort csvalid-regex.def
BOOL-->^(0|1)$
DATE-->(^[0-9]{1,2}[-\./][0-9]{1,2}[-\./][0-9]{2,4}$|^$)
DATENN-->^[0-9]{1,2}[-\./][0-9]{1,2}[-\./][0-9]{2,4}$
EMAIL-->(^[[:alnum:]]+[-.[:alnum:]]*[[:alnum:]]*@[[:alnum:]]+[-.[:alnum:]]*[[:alnum:]]+\.[[:alpha:]]+$|^$)
EMAILNN-->^[[:alnum:]]+[-.[:alnum:]]*[[:alnum:]]*@[[:alnum:]]+[-.[:alnum:]]*[[:alnum:]]+\.[[:alpha:]]+$
TELNO-->(^\+?[0-9][-/ 0-9]+$|^$)
TELNONN-->^\+?[0-9][-/ 0-9]+$
TEXTNN-->^[[:print:]]+$
TEXT-->(^[[:print:]]+$|^$)
WWWURL-->^(([url]http://[/url]|[url]https://[/url]|)[[:alnum:]]+[-\.[:alnum:]]*\.[[:alpha:]]+$|^$)
WWWURLNN-->^([url]http://[/url]|[url]https://[/url]|)[[:alnum:]]+[-\.[:alnum:]]*\.[[:alpha:]]+$

Wenn "TELNO-" Praezedenz vor "TELNONN-" hat, wieso gilt das dann nicht auch analog fuer "TEXTNN-" und "TEXT-"? :(


Luzandro schrieb am 10.10.2007 um 17:59

keine Ahnung, aber mit LC_COLLATE=C passt es wieder..


COLOSSUS schrieb am 11.10.2007 um 09:00

Das ist interessant - welche Locale hast du normalerweise, und tritt diese imho seltsame Sortierreihenfolge bei dir auch auf?

(Ich verwende en_US, habe sonst keine installiert.)

Werde bei Gelegenheit mal jemanden fragen, der sich mit den glibc-Interna auskennt. Sinnvoll erscheint mir das naemlich nicht grade - oder hat jemand eine plausible Erklaerung dafuer?
Interessant waere vielleicht zu wissen, wie Java das handhabt - aufgrund der Plattformunabhaengigkeit implementiert ein JRE ja alles "per pedes", wohl auch l10n und i18n - kann mal jemand mit einem installierten JDK pruefen, wie da sortiert wird?


Luzandro schrieb am 11.10.2007 um 09:07

Zitat von COLOSSUS
Das ist interessant - welche Locale hast du normalerweise, und tritt diese imho seltsame Sortierreihenfolge bei dir auch auf?

Ja, tritt bei "de_DE.UTF-8" auch auf - ich vermute, dass dabei einfach die meisten Sonderzeichen und Groß-/Kleinschreibung ignoriert werden, dann hättest du

TEXTNN < TEXTpr


wutzdutz schrieb am 11.10.2007 um 09:18

[BOOL, DATE, DATENN, EMAIL, EMAILNN, TELNO, TELNONN, TEXT, TEXTNN, WWWURL, WWWURLNN]

das sagt Collections.sort() von java 1.5




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025