Thread Warum werden Zeichen nicht ausgetauscht ? (13 answers)
Opened by jan99 at 2014-12-04 07:29

clms
 2014-12-05 18:03
#178666 #178666
User since
2010-08-29
373 Artikel
BenutzerIn
[default_avatar]
2014-12-05T16:13:24 jan99
ich habe noch etwas weiter gebastelt und bin verwundert das meine "von" jetzt teilweise doppelt vorkommen.

Code (perl): (dl )
1
2
3
4
5
6
     # konvertierung von v. in von
        # muss VOR der Bindestrich bereinigung erfolgen
        $str =~ s/\b[vV]\.-/von/g;
        $str =~ s/\b[vV]\-/von/g;
    $str =~ s/v-/von/g;
 

Die ersten beiden Ersetzungen betreffen wegen des \b in der Regex wirklich nur ein eizelnes 'v' gefolgt von ".-" oder "-",
Bei Deiner dritten Regex fehlt das \b . Deshalb verwandelt sie "Gustav-" in "Gustavon".

Am besten ersetze alle drei Ersetzungen durch ein einziges
$str =~ s/\b[vV]\.?-/von/g;
Und lese Dir mal ein Tutorial zu Regex durch.

Außerdem: Bist du Dir sicher, dass Du schon an dieser Stelle den Bindestrich entfernen willst?

View full thread Warum werden Zeichen nicht ausgetauscht ?