kostenloser Webspace werbefrei: lima-city


regexp - Regulärer Ausdruck

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    t****u

    Moin moin,
    ich suche einen Ausdruck, der mir aus dem folgendem HTML-tag/quelltext">Quelltext verschiedene Elemente liefert.

    <tr attribute="eventuell mehrere oder keine">
    <td> blabla Text mit *?==?)%$?"?$ Sonderzeichen </td>
    <td attribute="eventuell mehrere oder keine">

    Element, das ich gerne haben m?chte

    </td>
    </t
    r>
    thx
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. H?h? Wie meinen?

    Welche Art von HTML-Code du durchforsten willst, ist mir klar. Aber was willst du als Ergebnis bekommen? Das, was zwischen den Tags steht?

    Wenn ja: zwischen allen Tags oder nur zwischen bestimmten?
  4. Autor dieses Themas

    t****u

    Als Ergebnis m?chte ich nur das haben, was zwischen den zweiten Tabellenzellen steht.



    <tr attribute="eventuell mehrere oder keine">
    <td> blabla Text mit *?==?)%$?"?$ Sonderzeichen </td>
    <td attribute="eventuell mehrere oder keine">

    Element, das ich gerne haben m?chte

    </td>
    </tr>
  5. a******e

    Und wo bitte ist das Problem?????????

    Edit by H2O
    Solche Kurzpostings bitte unterlassen!

    Beitrag ge?ndert am 13.03.2006 16:03 von h2o
  6. Autor dieses Themas

    t****u

    Das Problem ist, dass ich mit regexp. keine Erfahrungen habe und daher eure Hilfe brauche.

    Also nochmal:
    Beispiel:
    $string='<tr><td id="id">Text</td><td> Ma quande lingues coalesce, li grammatica del resultant lingue. </td></tr>';
    
    $pattern = '';
    preg_match ( $pattern , $string , $ergebnisse );
    print_r($ergebnisse);

    $string ist eine Tabellenzeile, die zwei Zellen beinhaltet. Beim ?berpr?fen auf ein Pattern w?rde ich nun gern den Inhalt der Zelle nr.2 erhalten.

    Konkret w?re das:
    "Ma quande lingues coalesce, li grammatica del resultant lingue."


    Beitrag ge?ndert am 5.03.2006 13:39 von tuvalu
  7. Das h?ngt davon ab, wie die Tabelle aufgebaut ist. Weil der HTML-Code ja ziemlich frei formatierbar ist, kann man mit Regul?ren Ausdr?cken nicht immer alle Eventualit?ten erfassen.

    Nehmen wir an, dass die zweite Tabellenzelle immer direkt vor dem </tr> steht, k?nnte das so gehen:

    $html = der HTML-Quelltext;

    $inhalt = preg_replace(
    '/\<td[^\>]*\>([^\<]*)\<\/td\>\<\/tr\>/',
    '$1',
    $html
    );

    Das d?rfte die g?ngigsten F?lle abdecken, einige Sonderf?lle gehen damit aber nicht -- in HTML-Attribut-Eigenschaften (also das zwischen den "") darf beispielsweise ein ">" vorkommen, das passiert aber ?u?erst selten.

    http://de.php.net/manual/de/function.preg-replace.php

    Und hier die Erkl?rung:

    ([^\<]*) Klammer 1, deren Inhalt wollen wir haben (daher '$1' als zweiter Parameter f?r preg_replace();

    [] Eine Klasse von Zeichen
    * Das vorangehende Zeichen (oder die Klasse) keinmal, einmal oder mehrmals
    [^\<] ein beliebiges Zeichen, au?er ("^") dem "<"
    [^\>] ein beliebiges Zeichen, au?er dem ">"

    Der Rest d?rfte selbsterkl?rend sein, die Backslashes "\" stehen vor Zeichen, die in RegEx eine Bedeutung haben k?nnten und daher mit dem Backslash entwertet ("escaped") werden sollten.



    Hoffentlich funktionierts auf Anhieb, habs n?mlich nicht getestet ...

  8. Autor dieses Themas

    t****u

    Ich war gezwungen, da niemand geantwortet hat, alle unn?tigen Daten mittels str_replace() zu entfernen.
    Vielen Dank trotzdem - war lehrreich.
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!