a²: RegEx für Gurus

Beitrag lesen

Hallo Ashura,

vielen Dank für die hilfreiche und ausführliche AW :-)

Bin der Gefräßigkeit nun doch Herr geworden, indem ich das ".*>" aus der Expression entfernt habe; hilfreich war dabei auch das Tool RegEx Coach, das ich jedem nur ans Herz legen kann, der solche Bandüwrmer debuggen will. Das Ergebnis ist nun:

$theText = eregi_replace('(<font [^<]*color=["|']?([^ "']*)["|']?^></font>)','<fillcolor={ cmyk ' . getColorForPDF('\2', 'c') . ' ' . getColorForPDF('\2', 'm') . ' ' . getColorForPDF('\2', 'y') . ' ' . getColorForPDF('\2', 'k') . ' }\3<fillcolor={ ' . $sDefaultTextColor . ' }>', $theText);

Soweit wird nun alles ersetzt bzw. die Tags entsprechend ausgetauscht. Leider gibt es nun ein weiteres Problem: auf \3 kann ich bequem zugreifen, jedoch wird statt \2 (das den Hexwert der Farbe enthalten sollte) an meine getColorForPDF()-Funktion immer die Ziffer 2 übergeben. Was mache ich hier falsch?

Beste Grüße