Bienvenido a los foros de Perl en Español, DavidGV.
Primero, decirte que no vuelvas a escribir ningún mensaje en mayúsculas, por lo que pueda pasar
Segundo, erv-Z ya te ha dado la solución. Yo, con su permiso, te la comprimiré un poquito más:
Using perl Syntax Highlighting
$texto = '(Mur: 0.98798,((((Ba3n: 0.77637,CA3: 0.24356),H: 0.99877),G: 0.77892),J: 0.99872),Gi: 0.88982)';
$texto =~ s/: [\d.]+//g; # Quitamos las distancias
print "$texto\n"; # (Mur,((((Ba3n,CA3),H),G),J),Gi)Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
La expresión regular busca un carácter '
:', seguido de un ' ' y seguido de un conjunto de uno o más (
+) dígitos (
\d) o '
.'.
La solución ha sido sencilla porque las distancias se expresan todas de la misma forma.