Seite 2 von 2 Erste 12
  1. #11

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

    Standard Mehrzeiliges Regex

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

    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><br />Frank White - Unsere Zeit<br />
    und das ist eindeutig zu wenig und zu viel

    zu viel -> html
    zu wenig -> suchergebnisse


    @ Comu: Muss das bei Dir nicht $found[1] heißen?

  2. #12
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    8.015
    Thanked 9.387 Times in 3.225 Posts
    Blog Entries
    5

    Standard Mehrzeiliges Regex

    Zitat Zitat von Diebspiel Beitrag anzeigen
    Comu, es ist egal, ob man # oder / benutzt.
    Bei # braucht man / nicht zu escapen, bei / hingegen schon.

    Im Array der matches ist an erster Stelle (Index 0 ) der Suchstring enthalten, an 2. Stelle (Index 1) dann das 1. Match, sofern eines gefunden wird.

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

    Standard Mehrzeiliges Regex

    Ein Array fängt immer bei 0 an zu zählen. Wie oben gesagt, probiers aus.

  4. #14
    Avatar von Diebspiel
    Registriert seit
    18.11.2011
    Beiträge
    311
    Thanked 192 Times in 102 Posts

    Standard Mehrzeiliges Regex

    Zitat Zitat von DMW007 Beitrag anzeigen
    Bei # braucht man / nicht zu escapen, bei / hingegen schon.
    Das nehm ich als Grundwissen an, was ich sagen wollte ist das es egal ist, z.B. "=" geht auch.

  5. #15
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    8.015
    Thanked 9.387 Times in 3.225 Posts
    Blog Entries
    5

    Standard Mehrzeiliges Regex

    Zitat Zitat von Diebspiel Beitrag anzeigen
    Das nehm ich als Grundwissen an, was ich sagen wollte ist das es egal ist, z.B. "=" geht auch.
    Ich wollte damit sagen dass es wesentlich klüger wäre # statt / zu nehmen, da ja vorgeschlagen wurde dass er / nehmen soll.
    Wenn er / nimmt muss er jedes / bei einem Tag der geschlossen wird einzeln escapen, wenn er einfach # nimmt spart er sich die Arbeit, da kein # in seinem Source vorkommt.

    Grundsätzlich hast du natürlich Recht, "=" wäre hier aber ebenfalls ungünstig, da "=" genauso wie / auch mehrmals in seinem Source vorkommt :b

  6. #16

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

    Standard Mehrzeiliges Regex

    HTML-Code:
      <TR>
        <TD WIDTH=33% ALIGN=LEFT>
        <FONT FACE="Times New Roman,Garamond" SIZE=2><b>
    flotter karter 3</b>
        </FONT></TD>
        <TD WIDTH=33% ALIGN=CENTER>
    Hier müsste er eigentlich "flotter karter 3" finden, tut es aber nicht.

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

  7. #17
    Avatar von Comu
    Registriert seit
    18.11.2011
    Beiträge
    772
    Thanked 754 Times in 363 Posts

    Standard Mehrzeiliges Regex

    Sorry, dann weß ich auch nichtmehr weiter Am besten nochmal die Links die ich dir gegeben hab durchlesen, sollte dir helfen. Wenn nicht, werden die anderen dir sicher helfen

  8. #18
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    8.015
    Thanked 9.387 Times in 3.225 Posts
    Blog Entries
    5

    Standard Mehrzeiliges Regex

    Ich würds nicht komplizierter machen als nötig.
    Wenn du aus

    Code:
    <FONT FACE="Times New Roman,Garamond" SIZE=2><b>
    flotter karter 3</b>
    
    flotter kater 3 haben willst, fängst du bei <b> an und suchst einfach bis </b>, wenn du dann noch die jeweilige Zeile übernimmst sollte es eindeutig sein und nichts anderes in die Quere kommen.

    Ich weiß ja nicht was bei dir noch so im Quelltext ist, ich hab mal die Zeile drüber noch mit aufgenommen

    PHP-Code:
    $source 
        
    " <TR>
        <TD WIDTH=33% ALIGN=LEFT>
        <FONT FACE="
    Times New Roman,Garamond" SIZE=2><b>
    flotter karter 3</b>
        </FONT></TD>
        <TD WIDTH=33% ALIGN=CENTER>"
    ;
        
    preg_match("#\\<FONT FACE="Times New Roman,Garamond" SIZE=2\\>\\<b\\>([^\\</b>]+)#"$source$matches);
        echo 
    "[1]: " $matches[1]; 

  9. #19

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

    Standard Mehrzeiliges Regex

    Problem gelöst, ich hatte preg_match_all gebraucht.

Seite 2 von 2 Erste 12

Ä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.