Reguläre Ausdrücke bei Spracherkennung

Parantatatam

mag Cookies & Kekse
Hallo liebe Gemeinde,

ich bastle gerade mal wieder an einer Spracherkennung durch den Server. PHP bietet da die wunderbare Möglichkeit die Sprache mit $_SERVER[HTTP_ACCEPT_LANGUAGE] auszulesen. Allerdings habe ich gesehen, dass hinter den Sprachkürzeln immer ein q=0.x steht, von dem ich ausgehe, dass es eine Gewichtung der Sprache ist. Deshalb will ich diese auch mit auslesen und will es mit regulären Ausdrücken lösen. Und da kommt auch schon die Schwierigkeit, denn wenn ich nur das q=0.x auslese, dann geht das problemlos, aber nicht, wenn ich nebenbei auch noch die Sprachkürzel auslesen will.
Code:
// Funktioniert
q=[01]\.[0-9]

// Funktioniert witzigerweise nicht
[a-zA-Z\-]+|q=[01]\.[0-9]

// Das versuche ich zu interpretieren
de-de,de;q=0.8,en-us;q=0.5,en;q=0.3

Wenn jemand weiß, wo bei mir der Fehler auftritt, dann darf er sich gerne melden. Danke.
 
Code:
([a-zA-Z\-][^=])+|(q=[01]\.[0-9])
Versuch es mal so, ist in zwei Subgroups geteilt.
Das Problem das ich sah, war, dass das "q" bereits von der ersten Gruppe erfasst wurde und somit nicht mehr von der Zweiten.
 
Guten Morgen,

Auf php.net habe ich vor Kurzem einen RFC-Kompatiblen Parser gefunden: Klick

Habe ihn zwar noch nicht ausprobiert, aber auf der Seite finden sich mehrere Vorschläge.

Gruß
BK
 
Zurück