![]() |
Regulärer Ausdruck greift nicht
Moin moin,
zuerst mal vorneweg: Ich hab schon seit einiger Zeit nichts mehr mit regulären Ausdrücken gemacht, deswegen kann es sein, dass das hier ein ganz schlimmer Anfängerfehler ist. :stupid: Ich habe folgende RegEx:
Code:
Damit versuche ich, Strings in dieser Form zu zerpflücken:
^([a-z]+)[^,]*(,([a-z]+)[^,]*)*$
Code:
Nur gibt mir PHP das aus:
de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Code:
(Das erste ist wieder der komplette String, der wird von PHP immer noch zusätzlich zurückgegeben.)
Array
( [0] => de-de,de;q=0.8,en-us;q=0.5,en;q=0.3 [1] => de [2] => en ) Meiner Meinung nach sollte aber das zurückgegeben werden:
Code:
Soo, jetzt seid ihr dran. :duck:
Array
( [0] => de-de,de;q=0.8,en-us;q=0.5,en;q=0.3 [1] => de [2] => de [3] => en [4] => en ) |
Re: Regulärer Ausdruck greift nicht
Mach einfach die zwei * non-greedy ;)
Code:
^([a-z]+)[^,]*?(,([a-z]+)[^,]*?)*$
|
Re: Regulärer Ausdruck greift nicht
Funktioniert leider nicht, bei einem Komma greift der Teilausdruck ja sowieso nicht mehr...
|
Re: Regulärer Ausdruck greift nicht
Ich hab das Problem jetzt anders gelöst:
Code:
$accept_language = (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : $_ENV['HTTP_ACCEPT_LANGUAGE'];
$accept_languages = explode(',', $accept_language); foreach ($accept_languages as $accept_language) { $accept_language = trim($accept_language); if (preg_match('#^[a-z]+#i', $accept_language, $match)) { if (isset($match[0]) && in_array($match[0], $languages)) { $user_lang = $match[0]; break; } } } |
Re: Regulärer Ausdruck greift nicht
Kleiner Tipp am Rande: wenn du schon die User-Lang abfraegst, dann solltest du sie auch korrekt verwerten und den q-Faktor beruecksichtigen.
Greetz alcaeus |
Re: Regulärer Ausdruck greift nicht
Zitat:
|
Re: Regulärer Ausdruck greift nicht
Ja. Genau deswegen gibt es ja den Q-Faktor ;)
Greetz alcaeus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz