sort - will mir das jemand erklaeren?
COLOSSUS 10.10.2007 - 17:45 696 4
COLOSSUS
AdministratorGNUltra
|
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: 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
OC Addicted
|
keine Ahnung, aber mit LC_COLLATE=C passt es wieder..
|
COLOSSUS
AdministratorGNUltra
|
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
OC Addicted
|
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
owned by 50''
|
[BOOL, DATE, DATENN, EMAIL, EMAILNN, TELNO, TELNONN, TEXT, TEXTNN, WWWURL, WWWURLNN]
das sagt Collections.sort() von java 1.5
|