[PHP] Regular Expressions probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben bezig om HTML te parsen, oftwel, HTML pakken en ontleden totdat je krijgt wat je wil.
Dit probeer ik te doen met regular expressions. Hieronder staan een aantal regels code waarmee ik het stukje "Julianalaan 37" tussen de <B></B> wil hebben.

Het werkt alleen niet helemaal, ik krijg namelijk meer dan dat ik wil.

code:
1
2
3
4
5
        $fileContent = "<A href=\"toongrfoto.php3?grfoto=http://www.huisplein.nl/fotodir/4108/images/g0410808727a.jpg&straatnaam=Julianalaan&straatnummer=37++&postcode=1234+AB&plaats=AMSTERDAM&fotonr=1&fotomax=8\"><IMG alt=\"Vergroot de foto v/h object\" border=0 src=\"http://www.huisplein.nl/fotodir/4108/images/k0410808727a.jpg\" width=100></A></TD><TD vAlign='bottom'><font face='arial' size='2pt'><B>Julianalaan 37  </B><BR><B>1234 AB AMSTERDAM</B><BR><B><IMG src='../../images/euro.gif'>&nbsp;279.000,- k.k.</B><BR></FONT></TD><TD width=\"170\">&nbsp;</TD><TD width='10%' align='right'>&nbsp;<!--FONT size=\"-1\">ligging</FONT><A href=\"http://www.lokatienet.nl/webmapper/processpc.asp?zoom=4&action=search&pc=3474JN\" target=\"_blank\"><IMG src=\"../../images/topokaart.gif\" border=\"0\" alt=\"klik voor de ligging op de topografische kaart\"></A--><BR><A href='javascript:history.go(-1)'>Terug</A></TR>";
        
        preg_match_all("!<B>(.*)</B>!", $fileContent, $matches);
        
        print_r($matches);


Het resultaat wat ik krijg is het volgende:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
 Array
(
    [0] => Array
        (
            [0] => <B>Julianalaan 37  </B><BR><B>1234 AB AMSTERDAM</B><BR><B><IMG src='../../images/euro.gif'>&nbsp;279.000,- k.k.</B>
        )

    [1] => Array
        (
            [0] => Julianalaan 37  </B><BR><B>1234 AB AMSTERDAM</B><BR><B><IMG src='../../images/euro.gif'>&nbsp;279.000,- k.k.
        )

)


Ik heb geprobeerd met google, tutorials, GOT om eruit te komen, maar krijg het maar niet voor elkaar. Weet iemand een goede tutorial waarmee ik wel een stuk verder kan komen. Of kan iemand mij een stukje opweg helpen?

Acties:
  • 0 Henk 'm!

  • Pyrus
  • Registratie: November 2001
  • Laatst online: 20-09 21:30

Pyrus

Hardknock life

maak van die regex eens:
code:
1
!<B>(.*)</B>!U


Die U maakt hem niet greedy. Oftewel, nu matchtie de <b> bij de dichtsbijzijnde </b> en niet bij de laatst mogelijke :)

LinkedIn


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ah perfect! Dit werkt....tnx!

Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
Lees voor het gemak deze nog even door; http://nl3.php.net/manual...cre.pattern.modifiers.php

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Kijk voortaan even in de documentatie ;)

* RobIII mept frickY :(

[ Voor 4% gewijzigd door RobIII op 09-08-2007 13:07 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij