Hjælp til PHP regex
Jeg har efter meget kamp få skrevet et regex der kan tage en streng og finde en kodestump formateret på denne måde:[syntax:faa3276bb4="actionscript"]var foo:String = "test";[/syntax:faa3276bb4]
og så konvertere den til:
[code language="actionscript"]var foo:String = "test";[/code]
Min kode ser sådan her ud:
<?php
$text = '[syntax:faa3276bb4="actionscript"]var foo:String = "test";[/syntax:faa3276bb4]';
preg_match('/^(\[syntax\:[a-z0-9]{10}="([a-z]{3,12})"])(.+)\[\/syntax:[a-z0-9]{10}\]/i', $text, $matches);
print '[code type="' . $matches[2] . '"]' . $matches[3] . '[/code]';
?>
Så langt så godt, men hvis strengen indeholder flere kodestrumper, så virker mit regex ikke længere.
Hvordan kan jeg konvertere en streng som:
[syntax:faa3276bb4="actionscript"]var foo:String = "test";[/syntax:faa3276bb4] Her er så lidt tekst [syntax:ba9855sd51="php"]$foo = "test";[/syntax:ba9855sd51]
til:
[code language="actionscript"]var foo:String = "test";[/code] Her er så lidt tekst [code language="php"]$foo = "test";[/code]