AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Regulärer Ausdruck greift nicht

Ein Thema von S2B · begonnen am 21. Okt 2006 · letzter Beitrag vom 22. Okt 2006
Antwort Antwort
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#1

Regulärer Ausdruck greift nicht

  Alt 21. Okt 2006, 14:03
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.
Ich habe folgende RegEx:
Code:
^([a-z]+)[^,]*(,([a-z]+)[^,]*)*$
Damit versuche ich, Strings in dieser Form zu zerpflücken:
Code:
de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Nur gibt mir PHP das aus:
Code:
Array
(
    [0] => de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    [1] => de
    [2] => en
)
(Das erste ist wieder der komplette String, der wird von PHP immer noch zusätzlich zurückgegeben.)
Meiner Meinung nach sollte aber das zurückgegeben werden:
Code:
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
)
Soo, jetzt seid ihr dran.
Simon Praetorius
Gruß
S2B
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Regulärer Ausdruck greift nicht

  Alt 21. Okt 2006, 14:08
Mach einfach die zwei * non-greedy
Code:
^([a-z]+)[^,]*?(,([a-z]+)[^,]*?)*$
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#3

Re: Regulärer Ausdruck greift nicht

  Alt 21. Okt 2006, 14:10
Funktioniert leider nicht, bei einem Komma greift der Teilausdruck ja sowieso nicht mehr...
Simon Praetorius
Gruß
S2B
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#4

Re: Regulärer Ausdruck greift nicht

  Alt 22. Okt 2006, 10:43
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;
      }
   }
}
Simon Praetorius
Gruß
S2B
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#5

Re: Regulärer Ausdruck greift nicht

  Alt 22. Okt 2006, 10:55
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
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#6

Re: Regulärer Ausdruck greift nicht

  Alt 22. Okt 2006, 11:45
Zitat von alcaeus:
Kleiner Tipp am Rande: wenn du schon die User-Lang abfraegst, dann solltest du sie auch korrekt verwerten und den q-Faktor beruecksichtigen.
Ich ging davon aus, dass die Sprachen automatisch in der richtigen Reihenfolge vorliegen, da das mein FF so macht... Können die auch vermischt sein?
Simon Praetorius
Gruß
S2B
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#7

Re: Regulärer Ausdruck greift nicht

  Alt 22. Okt 2006, 13:02
Ja. Genau deswegen gibt es ja den Q-Faktor

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz