Seite 1 von 2 12 Letzte
  1. #1

    Registriert seit
    27.06.2012
    Beiträge
    17
    Thanked 0 Times in 0 Posts

    Standard Mehrzeiliges Regex

    Hi,

    ich benutze derzeit den Code

    PHP-Code:
    preg_match_all('#<TR>(s*)<TD WIDTH=33% ALIGN=LEFT>(s*)<FONT FACE="Times New Roman,Garamond" SIZE=2><b>^(s*)[A-Za-z0-9 @+-]+$</b>(s*)</FONT></TD>(s*)<TD WIDTH=33% ALIGN=CENTER>&nbsp;</TD>(s*)<TD WIDTH=33% ALIGN=RIGHT>&nbsp;</TD>(s*)</TR>#Uis'$web$found
    $web beinhaltet

    HTML-Code:
     <TR>
        <TD WIDTH=33% ALIGN=LEFT>
        <FONT FACE="Times New Roman,Garamond" SIZE=2><b>
    Frank White - Unsere Zeit</b>
        </FONT></TD>
        <TD WIDTH=33% ALIGN=CENTER>&nbsp;</TD>
        <TD WIDTH=33% ALIGN=RIGHT>&nbsp;</TD>
      </TR>
    Und die Ausgabe ist FALSE... ich brauche Hilfe...

  2. #2

    Registriert seit
    27.06.2012
    Beiträge
    17
    Thanked 0 Times in 0 Posts

    Standard Mehrzeiliges Regex

    Die Variable $web wird von einem file_get_contents() ermittelt. Ich kann also nichts für das großgeschriebene.

    Und " benutze ich nicht, weil ich keine Lust habe die Anführungszeichen zu replacen.

    Sinnvolle Beiträge?

  3. #3
    Avatar von Comu
    Registriert seit
    18.11.2011
    Beiträge
    772
    Thanked 753 Times in 363 Posts

    Standard Mehrzeiliges Regex

    Hi,
    jo ist klar das du nen False kriegst.

    Du musst am Anfang jeder RegEx immer mit "/ Anfangen und mit / schließen. Quasi: "/CONTEN(.*?)/" .

    Desweiteren musst du jeden Schrägstrich vom HTML escapen "gegenübertreteten".

    </TR> wird daher zu <\/TR>

    das sollte dann in etwa so aussehen:

    PHP-Code:
    eg_match_all('/#<TR>(s*)<TD WIDTH=33% ALIGN=LEFT>(s*)<FONT FACE="Times New Roman,Garamond" SIZE=2><b>^(s*)[A-Za-z0-9 @+-]+$</b>(s*)<\/FONT><\/TD>(s*)<TD WIDTH=33% ALIGN=CENTER>&nbsp;<\/TD>(s*)<TD WIDTH=33% ALIGN=RIGHT>&nbsp;<\/TD>(s*)<\/TR>#Uis/'$web$found
    Desweiteren weiß ich nicht wirklich das du mit dem # am Anfang und am Ende + dieses Uis bezwecken willst?

    Hier auch nochmal nen bisschen zum nachlesen: Quakenet/#php Tutorial - de - Reguläre Ausdrücke oder http://www.schattenbaum.net/php/ereg.php

  4. #4

    Registriert seit
    27.06.2012
    Beiträge
    17
    Thanked 0 Times in 0 Posts

    Standard Mehrzeiliges Regex

    Weder

    PHP-Code:
    preg_match_all('/<TR>(s*)<TD WIDTH=33% ALIGN=LEFT>(s*)<FONT FACE="Times New Roman,Garamond" SIZE=2><b>^(s*)[A-Za-z0-9 @+-]+$<\/b>(s*)<\/FONT><\/TD>(s*)<TD WIDTH=33% ALIGN=CENTER>&nbsp;<\/TD>(s*)<TD WIDTH=33% ALIGN=RIGHT>&nbsp;<\/TD>(s*)<\/TR>/'$web$found
    noch



    PHP-Code:
    preg_match_all('/<TR>(s*)<TD WIDTH=33%  ALIGN=LEFT>(s*)<FONT FACE="Times New Roman,Garamond"  SIZE=2><b>^(s*)[A-Za-z0-9  @+-]+$<\/b>(s*)<\/FONT><\/TD>(s*)<TD WIDTH=33%  ALIGN=CENTER>&nbsp;<\/TD>(s*)<TD WIDTH=33%  ALIGN=RIGHT>&nbsp;<\/TD>(s*)<\/TR>/Uis'$web,  $found
    funktioniert... (bei dem zweiten ist Uis am Ende; beides FALSE)

  5. #5
    Avatar von Comu
    Registriert seit
    18.11.2011
    Beiträge
    772
    Thanked 753 Times in 363 Posts

    Standard Mehrzeiliges Regex

    Ersetze dein komisches (s*) mal durch (.*?). Wenns nicht klappt, würde ich dir empfehlen, jedes Element einzeln rauszupicken. Sogut kenn ich mich mit RegEx leider auch nicht aus :-/

  6. #6

    Registriert seit
    27.06.2012
    Beiträge
    17
    Thanked 0 Times in 0 Posts

    Standard Mehrzeiliges Regex

    Wird auch zu FALSE.

    Gesucht wird ja 'Frank White - Unsere Zeit'

    Dieser enthält

    - Große Buchstaben
    - Kleine Buchstaben
    - Leerzeichen
    - Bindestrich

    Also müsste der Regex dafür sein, um das zu finden so sein
    ^[A-Za-z -]$

    right?

    Wenn ich es (.*) suchen lasse, kommt auch ein FALSE (auch wenn ich die (.*?) wieder zu (s*) ersetze)
    "Uis" am Ende führt auch zu FALSE bei (.*?) und (s*)

  7. #7
    Avatar von Diebspiel
    Registriert seit
    18.11.2011
    Beiträge
    311
    Thanked 191 Times in 102 Posts

    Standard Mehrzeiliges Regex

    Comu, es ist egal, ob man # oder / benutzt. Über mehrere Zeilen, dass geht mit \s+. Das steht für Whitespace (Leerraum).

    Grüße

  8. #8

    Registriert seit
    27.06.2012
    Beiträge
    17
    Thanked 0 Times in 0 Posts

    Standard Mehrzeiliges Regex

    Warning: preg_match_all() [function.preg-match-all]: Unknown modifier '+' in

    PHP-Code:
    preg_match_all('/<TR>(s*)<TD WIDTH=33% ALIGN=LEFT>(s*)<FONT FACE="Times New Roman,Garamond" SIZE=2><b>(.*)<\/b>(s*)<\/FONT><\/TD>(s*)<TD WIDTH=33% ALIGN=CENTER>&nbsp;<\/TD>(s*)<TD WIDTH=33% ALIGN=RIGHT>&nbsp;<\/TD>(s*)<\/TR>/s+'$web$found

  9. #9
    Avatar von Diebspiel
    Registriert seit
    18.11.2011
    Beiträge
    311
    Thanked 191 Times in 102 Posts

    Standard Mehrzeiliges Regex

    PHP-Code:
    <?php

    /**
     * @author Diebspiel
     * @copyright 2011
     */

    (string)$test file_get_contents("http://k-script.cc/");

    preg_match("#Themen: (.*),\s+Beiträge: (.*),\s+Benutzer: (.*)#"$test$array);

    print 
    $array[1] . "<br>";
    print 
    $array[2] . "<br>";
    print 
    $array[3];

    ?>

  10. #10
    Avatar von Comu
    Registriert seit
    18.11.2011
    Beiträge
    772
    Thanked 753 Times in 363 Posts

    Standard Mehrzeiliges Regex

    PHP-Code:


    preg_match
    ('/<TR><TD WIDTH=33% ALIGN=LEFT><FONT FACE="Times New Roman,Garamond" SIZE=2><b>(.*?)<\/b><\/FONT><\/TD><TD WIDTH=33% ALIGN=CENTER>&nbsp;<\/TD><TD WIDTH=33% ALIGN=RIGHT>&nbsp;<\/TD><\/TR>/',$web,$found);

    echo 
    $found[0]; //  Oben gesuchter Text 
    Ich seh da keinen Grund, extra was für mehrere Zeilen einzufügen. Du durchsuchst den ganzen Text der in $web angegeben ist, heißt, du musst nicht extra mehrere Zeilen angeben.

Seite 1 von 2 12 Letzte

Ähnliche Themen

  1. VB.Net Regex Problem
    Von One Way im Forum .Net
    Antworten: 1
    Letzter Beitrag: 09.09.2013, 15:20
  2. Hilfe Bei Regex
    Von Avenged im Forum Java
    Antworten: 1
    Letzter Beitrag: 14.07.2013, 17:18
  3. C# Regex Options
    Von ThunderStorm im Forum .Net
    Antworten: 5
    Letzter Beitrag: 13.03.2013, 17:05
  4. Regex von mehreren Elementen
    Von Comu im Forum PHP
    Antworten: 5
    Letzter Beitrag: 29.10.2012, 21:13
  5. VB.NET Regex Problem
    Von Escobar im Forum .Net
    Antworten: 1
    Letzter Beitrag: 04.01.2012, 02:20
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.