tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
204
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von para_noid
    para_noid para_noid ist offline Mitglied Gold
    Registriert seit
    Aug 2011
    Beiträge
    144
    Moin,

    Ich habe hier ein Array welches diverse Stichpunkte beinhaltet. Nun möchte ich daraus ein Array mit allen vorhanden Substantiven bekommen, also alle Wörter mit einem Großbuchstaben beginnend und mindestens 4 Zeichen lang.
    Reguläre Ausdrücke waren noch nie meine Stärke, aber meistens hab ich dann trotzdem ne Lösung gefunden. Heute nicht:

    PHP-Code:
    $pattern '/^([A-Z]+[A-z]{3,})*$/';
    while(list(
    $key$val) = each($keywords)){
      if(
    $val == strip_tags($val)){ //Teile mit HTML-Inhalt ausschließen
        
    echo $val.'<br />';
        
    preg_match_all($pattern$val$matches);
        echo 
    '<pre>';print_r($matches);echo '</pre>';
      }

    Wenn ich preg_match_all ausgebe bekomme ich 0, also scheint es keine anderweitigen Fehler zu geben.
    Die Schleife gibt mir folgende Ausgabe:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    Der Feuerstättenbescheid als Verwaltungsakt im Sinne des 35 VwVfG
     
    Array
    (
        [0] => Array
            (
            )
     
    )
     
    Anhörung nach 28 VwVfG
     
    Array
    (
        [0] => Array
            (
            )
     
    )
     
    Aufbau des Feuerstättenbescheides
     
    Array
    (
        [0] => Array
            (
            )
     
    )
     
    usw.

    Ich hab das Muster in einem [Regular Expression Checker] getestet und dort scheint es zu funktionieren.

    Seh ich das überhaupt richtig, dass
    Code :
    1
    
    [A-Z]+
    erstmal festlegt, dass am Anfang ein Großbuchstabe vorhanden sein muss?
    Und dass
    Code :
    1
    
    [A-z]{3,}
    mindestens 3 Buchstaben verlangt?

    Wenn ja, wo hakt es dann?
    Geändert von para_noid (10.10.11 um 11:22 Uhr)
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Dein Pattern hat zuviel Einschränken drin.
    Mit ^ und $ sagst du, dass der ganze String dieser Bedinung erfüllen muss
    Das * Aussherhalb der Klammer bedeutet, dass Substantiv direkt gefolgt ans Substantiv kommen muss

    Mit preg_match_all() reicht es aus, wenn das Pattern nur den Suchstring beinhaltet um ihn in einem Text mehrfach zu finden

    Code :
    1
    
    /([A-Z]+[A-z]{3,})/
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    Der Feuerstättenbescheid als Verwaltungsakt im Sinne des 35 VwVfG
    Array
    (
        [0] =Array
            (
                [0] =Feuerst
                [1] =Verwaltungsakt
                [2] =Sinne
                [3] =VwVfG
            )
        [1] =Array
            (
                [0] =Feuerst
                [1] =Verwaltungsakt
                [2] =Sinne
                [3] =VwVfG
            )
    )
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    Avatar von para_noid
    para_noid para_noid ist offline Mitglied Gold
    Registriert seit
    Aug 2011
    Beiträge
    144
    Danke für die schnelle Hilfe! "^", "$" & "*" hatte ich einfach nicht mehr für voll genommen.

    lg
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Um auch äöü etc und Zahlen mitzunehmen würde ich das gleich mit Charakterklassen machen
    Code :
    1
    
    ([[:upper:]ÄÖÜ][[:alpha:]äöüÄÖÜ]{3,})
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  5. #5
    Avatar von para_noid
    para_noid para_noid ist offline Mitglied Gold
    Registriert seit
    Aug 2011
    Beiträge
    144
    Hatte das jetzt so
    Code :
    1
    
    '/([A-ZÄÖÜ]+[A-zäöüß]{3,})/
    . Werd mir diese POSIX-Klassen aber mal genauer ansehen, sieht recht brauchbar aus.

    Danke
     

Ähnliche Themen

  1. Steh auf den Schlauch
    Von Kalito im Forum PHP
    Antworten: 10
    Letzter Beitrag: 21.12.10, 15:27
  2. Einfache Selectabfrage. Ich steh auf dem Schlauch
    Von michaelsoft im Forum Relationale Datenbanksysteme
    Antworten: 6
    Letzter Beitrag: 11.03.05, 18:27
  3. IE+Firefox... stehe auf'm Schlauch!
    Von seventy im Forum CSS
    Antworten: 4
    Letzter Beitrag: 04.11.04, 16:00
  4. Outlook - Ich steh mal wieder auf dem Schlauch
    Von Magic7 im Forum Office-Anwendungen
    Antworten: 6
    Letzter Beitrag: 07.11.02, 12:29
  5. ich steh grad aufm schlauch....
    Von blubber im Forum PHP
    Antworten: 2
    Letzter Beitrag: 06.05.02, 17:05

Stichworte