Umlaute und Regular Expressions

Hallo zusammen,

ich versuche gerade mittels Regular Expressions meine Daten zu durchsuchen und bin auf ein Problem gestoßen. Sobald am Anfang des Suchworts (und nur dann!) ein Umlaut steht, wird nichts gefunden.

Ich habe schon in einem anderen Thread von 2006 die Problematik mit lower()/upper() gesehen, mir scheint aber, dass das hier ne andere Kiste ist. Ein Beispiel:

postgres=# SELECT 'müller und schulz' ~* '\\ymüller\\y';
 ?column? 
----------
 t
(1 row)

funktioniert wie erwartet, aber:

postgres=# SELECT 'üller und schulz' ~* '\\yüller\\y';
 ?column? 
----------
 f
(1 row)

Auch wenn das Suchwort mitten im Text steht, funktioniert’s nicht:

postgres=# SELECT 'bei müller und schulz' ~* '\\ymüller\\y';
 ?column? 
----------
 t
(1 row)

postgres=# SELECT 'bei üller und schulz' ~* '\\yüller\\y';
 ?column? 
----------
 f
(1 row)

Sieht nach Bug aus. Hat jemand ne Idee, wie sich das zumindest umgehen ließe?

Danke,

Kevin

Was erwarstest Du? Das Ergebnis ist der Boolsche Wert t=true, f=false!

Kein Bug sondern Google ist dein Freund



mfg

fristo

Ähm, kannst Du mir das näher erklären? Ich find jedenfalls keinen Hinweis in der Doku, dass sich Suchworte mit Umlaut am Anfang anders verhalten als ohne… Siehe vor allem mein erstes Beispiel.
Ich hätte erwartet, dass das true gibt:

postgres=# SELECT 'üller und schulz' ~* '\\yüller\\y';
 ?column? 
----------
 f
(1 row)

Grüße,

Kevin

Nein, ich habe es nochmals überprüft, Du hast Recht.



mfg

fristo