Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: Regex - Negative Lookbehinds

  1. #1
    König(in) Avatar von crAzywuLf
    Registriert seit
    03.02.2009
    Beiträge
    1.175
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard Regex - Negative Lookbehinds

    Hi Leute,
    ich häng gerade irgendwie fest, ich denke das die Lösung negative Lookbehinds sind aber ich bekomme es einfach nicht hin.
    Es geht um eine Liste die so aussieht:
    Code:
    Lorem Ipsum Lorem Ipsum Lorem Ipsum
        
        <li>Lorem Ipsum</li>
        <li>Lorem Ipsum</li>
        <li>Lorem Ipsum</li>
        
    Lorem Ipsum Lorem Ipsum Lorem Ipsum
    wie man sieht, fehlt das <ul> um die Liste und dieses Tag möchte ich gerne nachziehen.

    Der Regex müsste also nach Listen suchen, die sich nicht in <ul>'s befinden und diese ersetzen.
    Es würde mir schon helfen, wenn ich den Ansatz hätte zu prüfen ob sich vor einem <li> kein <ul> befindet.
    Ich probierte es mit:
    Code:
    /(?<!<ul>)\W*<li>/
    aber das klappte irgendwie nicht.
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Geändert von crAzywuLf (24.03.2010 um 18:17 Uhr)
    Gruß crAzywuLf

  2. #2
    Pion
    Gast

    Standard AW: Regex - Negative Lookbehinds

    Naja gibts ne bestimmtes Schema , sprich kommt nach dem <ul> sofort das li oder ist was dazwischen

    Ansonsten such doch einfach nach <li> mit strpos, und schaue was davor steht

  3. #3
    König(in)
    Themenstarter
    Avatar von crAzywuLf
    Registriert seit
    03.02.2009
    Beiträge
    1.175
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Regex - Negative Lookbehinds

    Zitat Zitat von Pion Beitrag anzeigen
    Naja gibts ne bestimmtes Schema , sprich kommt nach dem <ul> sofort das li oder ist was dazwischen

    Ansonsten such doch einfach nach <li> mit strpos, und schaue was davor steht
    klar, ich hatte nur gehofft, dass ich da eine perverse Regex Lösung einbauen kann^^
    Gruß crAzywuLf

  4. #4
    Pion
    Gast

    Standard AW: Regex - Negative Lookbehinds

    Wozu den das?

    Wenn das mit der Funktion klappt dann ist es doch in Ordnung


    mfg

  5. #5
    König(in)
    Themenstarter
    Avatar von crAzywuLf
    Registriert seit
    03.02.2009
    Beiträge
    1.175
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Regex - Negative Lookbehinds

    Zitat Zitat von Pion Beitrag anzeigen
    Wozu den das?

    Wenn das mit der Funktion klappt dann ist es doch in Ordnung


    mfg
    naja^^ an der Stelle woran ich arbeite kann ich aber nur einen Regex benutzen... wie auch immer, falls noch jemand einen Ansatz mit einem Regex kennt, würde ich mich freuen.
    Gruß crAzywuLf

  6. #6
    Pion
    Gast

    Standard AW: Regex - Negative Lookbehinds

    Okay, gib mir mal dein Document, den das man da nur mit nen Regex weiter kommt glaub ich nicht

    Aber da kann ich dir auch nicht helfen wenn du das sturr mit regex machen willst

  7. #7
    Prinz(essin) Avatar von -Bambino-
    Registriert seit
    21.12.2007
    Ort
    Berlin
    Beiträge
    865
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    4

    Standard AW: Regex - Negative Lookbehinds

    Zitat Zitat von crAzywuLf Beitrag anzeigen
    naja^^ an der Stelle woran ich arbeite kann ich aber nur einen Regex benutzen... wie auch immer, falls noch jemand einen Ansatz mit einem Regex kennt, würde ich mich freuen.
    Sicher gibts den:

    PHP-Code:
    (?<!<ul>)[\w]*<li><\/li
    Er sucht also nach irgenwelchen Zeichen und dem <li></li> Elemten (in diesem Fall leer, setzte also noch beliebige Zeichen dazwischen, oder mache das </li> Elemt weg), findet diese aber nur, wenn kein <ul> davor steht!

    Edit:
    Also das ist ja deinem da oben sehr ähnlich, das hier funktioniert aber, denn du suchst oben über \W nach "nicht-wort-Zeichen", und nicht nach "wort-Zeichen".

    Aber da kann ich dir auch nicht helfen wenn du das sturr mit regex machen willst
    Wieso kann man das nicht einfach nutzen, wenns einfacher ist?
    Oder wenigstens dann, wenn gesagt wird, dass es keine andere Lösung gibt!?
    =)
    Geändert von -Bambino- (25.03.2010 um 16:24 Uhr)
    wert.TeeeX.de
    Wie gut ist die technische Umsetztung deiner Website wirklich?
    Teste es!

  8. #8
    König(in)
    Themenstarter
    Avatar von crAzywuLf
    Registriert seit
    03.02.2009
    Beiträge
    1.175
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Regex - Negative Lookbehinds

    Zitat Zitat von Pion Beitrag anzeigen
    Okay, gib mir mal dein Document, den das man da nur mit nen Regex weiter kommt glaub ich nicht

    Aber da kann ich dir auch nicht helfen wenn du das sturr mit regex machen willst
    Es geht nicht um die Lösung selbst, sondern um eine Lösung mit Regex.


    Zitat Zitat von -Bambino- Beitrag anzeigen
    Sicher gibts den:

    PHP-Code:
    (?<!<ul>)[\w]*<li><\/li
    Er sucht also nach irgenwelchen Zeichen und dem <li></li> Elemten (in diesem Fall leer, setzte also noch beliebige Zeichen dazwischen, oder mache das </li> Elemt weg), findet diese aber nur, wenn kein <ul> davor steht!

    Edit:
    Also das ist ja deinem da oben sehr ähnlich, das hier funktioniert aber, denn du suchst oben über \W nach "nicht-wort-Zeichen", und nicht nach "wort-Zeichen".



    Wieso kann man das nicht einfach nutzen, wenns einfacher ist?
    Oder wenigstens dann, wenn gesagt wird, dass es keine andere Lösung gibt!?
    =)
    Code:
    Lorem Ipsum Lorem Ipsum Lorem Ipsum
    <ul>
        <li>Lorem Ipsum</li>
        <li>Lorem Ipsum</li>
        <li>Lorem Ipsum</li>
        
    Lorem Ipsum Lorem Ipsum Lorem Ipsum
    mit dem Regex:
    Code:
    (?<!<ul>)[w]*<li>
    klappt nicht, theoretisch müsste das erste <li> ja nicht gematched werden... right?
    Gruß crAzywuLf

  9. #9
    Pion
    Gast

    Standard AW: Regex - Negative Lookbehinds

    Regex sind eine Klasse sache, sie erleichtern enorm die Arbeit das ist klar...

    Dennoch möchte ich mal meine Möglichkeit posten:

    Code:
    <?php
    
    $doc = new DOMDocument();
    @$doc->loadHTML("<ul><li>das</li></ul>  <li>d</li>");
    $li = $doc->getElementsByTagName('li');
    foreach ($li as $tag) {
        if ($tag->parentNode->nodeName == 'ul') {
        }else {
            $node = $doc->createElement("ul");
            $node = $tag->parentNode->appendchild($node);
            $node->appendchild($tag);
        }
    }
    
    echo $doc->saveHTML();
    
    ?>
    mfg

  10. #10
    Prinz(essin) Avatar von -Bambino-
    Registriert seit
    21.12.2007
    Ort
    Berlin
    Beiträge
    865
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    4

    Standard AW: Regex - Negative Lookbehinds

    PHP-Code:
    <?php 
    error_reporting
    (E_ALL); 

    // Text bzw. String der durchsucht werden soll  
    $string 
    asdasdklklnhasd 
    <ul> 
    asdasdasd 
    <li>hkasd<li> 
    "


    // das Suchmuster mit Delimiter und Modifer (falls vorhanden)  
    $pattern '/(?=<ul>)[\w|\W]+<li>/'

    // RegEx mit preg_match_all() auswerten  
    preg_match_all($pattern$string$array); 

    // formatierte Ausgabe  
    echo '<pre>'print_r($arraytrue), '</pre>'

    ?>
    Dann denke ich, sollte es vielleicht so klappen. Jetzt findet er das <li> nur, wenn auch ein <ul> davor steht. Und wenn nicht, kannst du ja halt deine Funktion ausführen?!
    Klappts diesmal?
    =)

    LINK
    wert.TeeeX.de
    Wie gut ist die technische Umsetztung deiner Website wirklich?
    Teste es!

Ähnliche Themen

  1. RegEx Frage
    Von Thonixx im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 12
    Letzter Beitrag: 23.10.2008, 21:58
  2. RegEx
    Von Thonixx im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 10.10.2008, 09:15
  3. RegEx in php
    Von synaptic im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 8
    Letzter Beitrag: 04.07.2008, 13:59
  4. regex
    Von markus88 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 22.03.2007, 12:27
  5. regex benötigt
    Von cookie im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 12
    Letzter Beitrag: 29.05.2006, 19:02

Stichworte

Berechtigungen

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