Ergebnis 1 bis 4 von 4

Thema: RegExp trifft nicht (alles)

  1. #1
    TP-Newbie
    Registriert seit
    Oct 2011
    Beiträge
    3

    RegExp trifft nicht (alles)

    Hallo,

    ich arbeite mich jetzt seit exakt zwei Tagen in reguläre Ausdrücke ein und merke dabei schon deutlich, dass es eine Wissenschaft für sich ist. Mein exaktes Problem ist folgendes:

    Ich möchte aus einem HTML-Quellcode alle Nicknames an bestimmten Positionen extrahieren, ohne vorher zu wissen, welche Nicknames dort stehen. Der entsprechende Auszug aus dem Quellcode liest sich so:

    HTML-Code:
    oppos"> <strong>Tarson</strong><br /> <i>free</i> </div>
    oder
    HTML-Code:
    oppos"> DaHa<br /> <strong>ilovegame</strong> </div>
    (Tarson/free/Daha/ilovegame sind die zu findenen Nicknames, welche aber auch komplett anders lauten könnten. Die Nicknames VOR dem <br /> können per <strong> eingefasst sein, die dahinter per <strong> ODER <i>. Dort, wo oben Leerzeichen stehen, ist im Originalquelltext beliebig langer Whitespace mit Tabs/Zeilenumbrüchen)

    Mein RegEx-Ausdruck sieht so aus:

    PHP-Code:
    $s1 'oppos">[^\w]*'// Div   match_pool_oppos
    $s2 '(<strong>)?'//<strong>
    $s3 '([^<]*)'// Spieler 1
    $s4 '(<\/strong>)?'// </strong>
    $s5 '<br.\/>[^\w]*'// <br>
    $s6 '(<strong>|<i>)?'// <strong> oder <i>
    $s7 '([^<]*)'// Spieler 2
    $s8 '(<\/strong>|<\/i>)?'// </strong> oder </i>
    $s9 '<'// </div>

    $spielesuche "/".$s1.$s2.$s3.$s4.$s5.$s6.$s7.$s8.$s9.$s10."/isxU";

    preg_match_all($spielesuche,$datei,$spiele_raw); 
    Was er findet ist Spieler 1 - egal ob mit <strong> eingefasst oder nicht. Spieler 2 findet er nur, wenn er weder von <strong> noch von <i> eingefasst ist.

    Frage: Wie finde ich nun Spieler 2, die mit Tags eingefasst sind?

  2. #2
    TP-Newbie
    Registriert seit
    Oct 2011
    Beiträge
    3
    Hat denn keiner eine Lösung... oder zumindest eine Idee?

  3. #3
    TP-Specialist Avatar von theo
    Registriert seit
    Apr 2002
    Ort
    743, evergreen terrace
    Beiträge
    2.346
    warum so kompliziert?
    PHP-Code:
    $hits = array();

    $string "<div class=\"match_pool_oppos \"> <strong>Tarson</strong><br /> <i>free</i> </div>";
    $string.= "<div class=\"match_pool_oppos \"> DaHa<br /> <strong>ilovegame</strong> </div>";

    preg_match_all("/<div class=\"match_pool_oppos \">(.*)<\/div>/iU"$string$treffer);

    if (
    is_array($treffer)) {
        foreach (
    $treffer[1] as $val) {
            
    $ar explode("<br />"$val);
            foreach (
    $ar as $hit) {
                
    $hits[] = strip_tags($hit);
            }
        }
    }

    print_r($hits); 
    /b{2}|[^(bb)]/

    [Workshop] Nested sets

  4. #4
    TP-Newbie
    Registriert seit
    Oct 2011
    Beiträge
    3
    Vielen Dank. Das Wissen um die Explode-Funktion war, was mir fehlte, um das einfacher zu lösen. Geht jetzt.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. [PHP] mit regexp Wort ersetzen lassen, aber nicht im title
    Von aceman3000 im Forum Traum-Dynamik
    Antworten: 1
    Letzter Beitrag: 08.08.2008, 11:30
  2. RegExp PHP Muster wird nicht erkannt
    Von skaterpunk001 im Forum Traum-Dynamik
    Antworten: 1
    Letzter Beitrag: 21.03.2007, 13:13
  3. [PHP-RegExp] URL - finde Fehler nicht
    Von P4r4 im Forum Traum-Dynamik
    Antworten: 3
    Letzter Beitrag: 07.09.2004, 16:21
  4. Antworten: 0
    Letzter Beitrag: 26.02.2004, 15:12
  5. MC trifft auf MC -> Zähler+1?
    Von pxxl im Forum Flash & Multimedia
    Antworten: 7
    Letzter Beitrag: 23.08.2002, 18:27

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51