OsiriS: RegEx:Backreferences

Beitrag lesen

Guten Morgen, alle zusammen.

Ich sitze hier bereits seit Stunden über einem Problem, von dem ich nicht einmal genau weiß, ob es lösbar ist.

Die Aufgabenstellung:
Ich möchte in einem String mehrere Vorkommen eines Patterns bearbeiten.
Der RegEx liefert mir eine/mehrere Backreferences, die ich allerdings noch auswerten will. Das mache ich über einen Funktionsaufruf.
Falls mir nicht zu folgen ist, hier mal das Ganze in abgespecktem php-Code:

  
<?php  
$string='Hier steht etwas in [tag1]einem Tag[/tag1].'  
  
function tu_was($backres)  
  {  
  return $backres;  
  }  
  
$ausgabe=preg_replace('#\[tag1\](.+?)\[/tag1\]#is', tu_was('\\1'), $string);  
echo $ausgabe;  
?>  

Was mir eben dabei auffällt: Die Backreference ('\1') wird beim Übergeben als Parameter nicht interpretiert, sondern als String übergeben. Folglich wird folgendes ausgeführt:

  
<?php  
  echo tu_was('\\1');  
  //Ausgabe: \\1  
?>  

Kann mir jemand sagen, ob dieses Ansinnen überhaupt zu einer erfolgreichen Lösung gebracht werden kann, oder was ich gegebenen Falles falsch mache?

mit freundlichen Grüßen,
OsiriS