[PHP] reg expression

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ben ontzettend aan het prutsen met een regular expression. Heb nu het volgende wat goed werkt:
code:
1
preg_match_all("|<td [^>]+>(.*)</td>|U",$buffer,$out, PREG_SET_ORDER);

Nu wil ik echter dat hij de TD's overslaat waar 'old' in de classname voorkomt, bijv. <td class='cell_old'>

Iemand idee hoe ik die cellen met 'old' kan uitsluiten?

Acties:
  • 0 Henk 'm!

  • EdwinG
  • Registratie: Oktober 2002
  • Laatst online: 22:41
Persoonlijk zou ik $out doorlopen, en van elke controleren of ze voldoen aan
code:
1
preg_match("|class\='[^']*old[^']*'|i", $een_van_de_matches)

Als dat zo is: verwijderen uit de resultaten.

Trouwens, een <td> zonder class (dus gewoon <td>) wordt door jouw preg_match_all niet gezien. Ik weet niet of dat ook de bedoeling is.

edit:
Onderste regel verduidelijkt.

[ Voor 8% gewijzigd door EdwinG op 26-07-2007 12:23 ]

Bezoek eens een willekeurige pagina


Acties:
  • 0 Henk 'm!

  • akaIDIOT
  • Registratie: Januari 2005
  • Laatst online: 06-08 18:13
EdwinG schreef op donderdag 26 juli 2007 @ 12:22:
Als dat zo is: verwijderen uit de resultaten.
DIt kan je ook prima doen met preg_grep.
Moet je alleen wel de regex omdraaien (om classes zonder old matchen ;)).

*stu!ter* *boink*


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
OK, thanks so far.. Maar is het niet mogelijk om alles in 1 expression te doen? Iets als...
code:
1
preg_match_all("|<td [^>]+![^'old']>(.*)</td>|U",$buffer,$out, PREG_SET_ORDER);

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:47

Creepy

Tactical Espionage Splatterer

Probeer het en je weet het. We gaan er hier vanuit dat je voor je je probleem hier op het forum zet zelf al bezig bent geweest met het vinden van een oplossing en dat je ook aangeeft wat je nu zelf hebt geprobeerd en wat daar niet mee lukte. 1 regel code posten en vervolgens vragen "kan dit en dit?" is niet de bedoeling. Zie ook Programming Beleid en dan met name Programming Beleid - De Quickstart voor welke informatie we nu precies willen zien.
Dus als je wat meer info kan geven over wat je nu precies zelf hebt geprobeerd e.d. dan zou dat fijn zijn.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney