Avatar billede peter369 Nybegynder
19. november 2009 - 20:10 Der er 2 kommentarer og
1 løsning

Regular Expressions på et html indhold

Hej alle samme

Jeg har et problem med en php kode hvor jeg skal bruge Regular Expressions.

preg_match_all("/ID<.*?>.*?<.*?>(.*?)<.*?>/", $temp, $acceptable, PREG_PATTERN_ORDER);

Problemet der op står er at jeg matcher for meget i min $temp.

Her rammer jeg ved side af.
ID</td>          </tr>          <tr bgcolor="#D3D8DC" align='left'>            <td height='16' width='30%' class='listtable_1'>ID</td>

Her rammer jeg.
ID</td>            <td height='16' width='70%' class='listtable_1'><i><font color='#677882'>no ID present</font></i></td>

Det der opstå er at min strenge ikke kan se forskel på om det er ID</td>*</tr>*<tr>*<td ... eller ID</td>*<td ... den rammer.

Det jeg gere vil kunne er at ramme ud fra ord i rum 1 (ID) og få værdien fra rum 2 (no ID present).

<tr bgcolor="#D3D8DC" align='left'>
    <td height='16' width='30%' class='listtable_1'>ID</td>
    <td height='16' width='70%' class='listtable_1'>no ID present</td>
</tr>

(\n og \r er blevet fjernet)
Avatar billede tjp Mester
19. november 2009 - 23:24 #1
Jeg er ikke helt sikker på jeg har forstået hvad du ønsker, men hvad siger du til:
/ID</td>.*?<td.*?>(.*?)</td>/
Avatar billede peter369 Nybegynder
20. november 2009 - 00:45 #2
Der er fundet løsningen.

<\/td>[ \t]+<td.*?>
Avatar billede peter369 Nybegynder
20. november 2009 - 00:57 #3
Hey tjp der må være et problem Cache, da jeg først har set nu at du har givet et svart.

Problemet med "/ID</td>.*?<td.*?>(.*?)</td>/" opstå her "... </td>.*?<td.*?> ..."
Det vil ikke fortæller noget om der må være </tr> osv inden i mellem </td> og <td.*?>.

Men tusser tak for et bud.

- Jeg har løst det med at der kun må være mellemrum eller tab tegn i mellem </td> og <td.*?>.
"<\/td>[ \t]+<td.*?>"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester