Avatar billede champman2000 Nybegynder
02. februar 2004 - 14:46 Der er 4 kommentarer og
1 løsning

Ang: Regular expressions

Har en streng hvori følgende kode kan befinde sig:

[font color="#FF9900"]

Jeg skulle gerne med hjælp af noget "regular expression" erstatte koden med:

<font color="#FF9900">

Desværre er jeg en idiot til at finde hoved og hale i regular expressions. Så nu håber der er nogen der kan hjælpe mig med en løsning... :)
Avatar billede detox Nybegynder
02. februar 2004 - 14:53 #1
$str = preg_replace("/\[(.*)\]/", "<$1>", $str);
Avatar billede limemedia Nybegynder
02. februar 2004 - 14:58 #2
et hurtigt eksempel
<?php
    $str = 'aaa bbb [font color="#FF9900"] ccc ddd';
    $newStr = preg_replace('/\[font color=\"#([a-fA-F0-9]{3,6})+\"\]/','<font color="#\\1">',$str);
    echo $newStr;
?>
Avatar billede limemedia Nybegynder
02. februar 2004 - 15:00 #3
[/font] til </font> skal du huske, men bør ikke være en regexp - en alm str_replace vil være hurtigere.

mere om preg_replace : http://dk.php.net/preg_replace
mere om str_replace : http://dk.php.net/str_replace
Avatar billede detox Nybegynder
02. februar 2004 - 15:02 #4
Ja, min er nok mere generel. Den bytter alle [] ud med <>, hvilket jo osse kan være godt nok (hvis man skal det), i hvert fald, hvis man husker U modifieren:

$str = preg_replace("/\[(.*)\]/U", "<$1>", $str);
Avatar billede champman2000 Nybegynder
02. februar 2004 - 15:17 #5
Begge to tak...

Selvom jeg selv fik detox's til at virke inden svaret fra lars, kan jeg godt se at det er nok er lars's jeg har brug for. Det er til et forum så det er ikke smart at man ligepludselig kan skrive alle html koder :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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