"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

sort - will mir das jemand erklaeren?

COLOSSUS 10.10.2007 - 17:45 696 4
Posts

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12070
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

OC Addicted
Avatar
Registered: Mar 2006
Location: 2482
Posts: 708
keine Ahnung, aber mit LC_COLLATE=C passt es wieder..

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12070
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
Avatar
Registered: Mar 2006
Location: 2482
Posts: 708
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

owned by 50''
Avatar
Registered: May 2001
Location: Baden bei Wien
Posts: 1638
[BOOL, DATE, DATENN, EMAIL, EMAILNN, TELNO, TELNONN, TEXT, TEXTNN, WWWURL, WWWURLNN]

das sagt Collections.sort() von java 1.5
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz