Regex voor linknaam

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • dominicr
  • Registratie: Maart 2008
  • Laatst online: 12-11-2020
Hey

Ik ben bezig met het maken van een regex, idee is dat ik waardes uit een tabel wil halen (simpel he), ik zit echter met een probleempje.

Bijvoorbeeld deze codes:

<th class="naamcl">Sorteren op: <a href="naam.php" onmouseout="return nd();">Naam</a></th>

de expressie /<th.*?>(.*?)<\/[\s]*th>/ geeft mij netjes alles terug binnen de th tag


Ik wil alleen de <a href tag niet meenemen

Als ik een code heb als:
<th class="naamcl"><a href="naam.php" onmouseout="return nd();">Naam</a></th>

werkt dit goed
/<th.*?><a href=.*?>(.*?)<\/a><\/[\s]*th>/ (krijg netjes naam terug)

Mocht er echter iets voor de <a href staan, neem bijvoorbeeld weer
<th class="naamcl">Sorteren op: <a href="naam.php" onmouseout="return nd();">Naam</a></th>

Dan krijg ik niksmeer terug, ik heb geprobeerd om met een * tussen het einde van th en het begin van a href te werken maar dat werkte niet
Als ik een * gebruik dan krijg ik Naam netjes terug, maar ik wil ook de tekst voor de <a href, dus wil graag Sorteren op: Naam terugkrijgen

iemand die mij op weg kan helpen ?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Gebruik gewoon je eerste regexp in combinatie met strip_tags over het resultaat? :?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • 4Real
  • Registratie: Juni 2001
  • Laatst online: 14-09-2024
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php

    $str = '<th class="naamcl">Sorteren op: <a href="naam.php" onmouseout="return nd();">Naam</a></th>';
    
    
    $status = preg_match_all('/<th(.*?)>(.+?)<a href=\"(.+?)\"(.*?)<\/[\s]*th>/', $str, $matches);
    
    echo "<pre>";
    print_r($matches);
    echo "</pre>";

?>


Ranzig resultaat volgens mij, maar je krijgt je php bestand er wel uit :)

Acties:
  • 0 Henk 'm!

  • dominicr
  • Registratie: Maart 2008
  • Laatst online: 12-11-2020
het is gelukt bedankt voor jullie aanwijzingen

Acties:
  • 0 Henk 'm!

  • dominicr
  • Registratie: Maart 2008
  • Laatst online: 12-11-2020
Volgend probleem

Code:
<tr class="Eventop3"><td class=" top3">1</td><td class="verstrekker"><a href="verstrekker.php" title="Verstrekker">Verstrekker</a></td><td>2.80</td><td>3.30</td><td>3.50</td><td>3.70</td> enz.........

Ik wil graag alle informatie binnen de Td's behalve die van top 3

Mijn idee was
(<td class=\"verstrekker\">|<td>)(.*?)<\/[\s]*td>

Werkt helaas niet, als ik de () vervang voor [] dan krijg ik wel die top 3 mee
ik weet niet of [^top3] ofzo zou werken ?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Natuurlijk werkt dat allebei niet, met haakjes eromheen vind je alsnog ook die TD (sterker nog, je vindt alleen die td). [^top3] matcht één enkel karakter en alleen als dat ene karakter niet een t, een o, een p of een 3 is. Het lijkt me handig als je eerst eens gaat begrijpen wat regular expressions zijn en hoe ze werken voordat je ze gebruikt. ;)

Los daarvan: je zit HTML uit te lezen, gebruik dan ook de goede aanpak om dat te doen. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1