[PHP] Perl regex (preg_match / search)

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heeft er iemand een idee hoe het volgende te realiseren is.

case:

Het vervangen van een patroon door een ander (dynamisch) opgebouwd patroon.

Voorbeeld:

$content = "Deze <a> tag is voor anchor, en de <b> tag is voor bold.";

$pattern = "/<[[:alpha:]]>/i"

$replacement = dynamisch;

preg_replace($pattern, $replacement, $content);


Wat ik hier mee wil is het volgende.

Deze regex zou 2 keer matchen (op <a> en op <b>).

Nu wil ik <a> replacen met decimalen waarde

<a> moet dus worden 817273 (verkeerde waarde, maar je get the message)

bij elke match, moet hij dus de tag converteren naar decimale waarden en terug zetten in de string.

heeft iemand enig idee hoe dit werkt?

dit is maar een voorbeeldje:

de werkelijke code staat op http://dev.nutshell.tk/destrict/des.php.txt
check vooral de functie modify_address

ik hoop dat iemand het weet.

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:29

crisp

Devver

Pixelated

kijk eens naar de e-modifier of naar preg_replace_callback; $replacement is dan dus zeg maar een functie die je kan aanroepen met de match als parameter.

[ Voor 46% gewijzigd door crisp op 29-05-2004 23:26 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Topper! Dank je

Acties:
  • 0 Henk 'm!

Verwijderd

Weet niet of ik je goed begrepen heb, maar bedoel je dit?

code:
1
2
3
$ubb = array(   "onderstrepen" => "_\\[u\](.*?)\\[/u\]_");
$html = array(  "underline" => "<u>[b]\\1[/b]</u>");
$string = preg_replace($ubb, $html, $string);



Met die \\1 als dynamische content