Es handelt sich um tatsächlich unterschiedliche Zeichen, nicht um unterschiedliche Bezeichnungen desselben Zeichens. Das sollte dein Script berücksichtigen und einsetzen.
Die Quelldatei wird bei uns aus einer bestimmten Software generiert und besitzt eine sehr fixe Struktur und nur eingeschränkte Zeichen. Aus diesen muss ich versuchen, das Maximum rauszuholen und schicke HTML-Seiten zu basteln. Also kann ich leider nicht einfach sagen, dass es einen Unterschied zwischen Binde- und Gedankenstrich in der Quell-XML gibt, da er syntaktisch nicht vorhanden ist.
Daher erneut meine Frage vom ersten Posting: Wie kann man mit den regex die verschiedenen Fälle filtern, um die Ausgabe dementsprechend anzupassen. Ob die Ausgabe später einen Binde- oder Gedankenstrich (–) enthält, ist leicht umzusetzen. Mein Problem ist eher die vorhergehende Analyse.