Scripting Contest Aufgabe Buchstaben ersetzen

Aus DebianforumWiki
Zur Navigation springen Zur Suche springen

Scripting Contest Aufgabe Buchstaben ersetzen

Aufgabenbeschreibung

Im Vorlagentext von anbas von http://www.leselupe.de, zu finden als Paste unter Icon pastebin.gif 38993 sollen Buchstaben ersetzt werden.

Die Regeln:

  • Die Buchstaben werden wie folgt ersetzt:
    • A -> 4
    • B -> 8
    • E -> 3
    • G -> 6
  • Weiterhin wird im Text in Anführungszeichen "wie z. B. Beispiel hier" keine Ersetzung vorgenommen

Lösungen

Bei den vielen geposteten Lösungen im Forum( ab Beitrag 1053851) gibt es im wesentlichen zwei Ansätze:

  • Teile den kompletten Text via Regex in ein Array an den Kommentarzeichen auf und ersetze jedes ungerades Element(Das somit nicht innerhalb von "" liegt).
  • Verarbeite den Text zeichenweise und ersetze dabei den Text, sofern der Ersetzungsmodus aktiv ist. Wenn ein " Zeichen auftritt, schalte den Ersetzungsmodus ein oder aus.

Anmerkung zu einzelnen Lösungen

Hier unformatierten Text eingeben

  • Bash Icon pastebin.gif 38995: Bei der Bash ist es wichtig darauf zu achten, dass nur Bash-Funktionen zum Einsatz kommen und externe Prozesserzeugungen minimiert werden. Sonst braucht das Bash-Script sehr lange.
  • Perl Icon pastebin.gif 38828 zeigt eine sehr kompakte Lösung mittels Perl-RegEx
  • sed / cpp Icon pastebin.gif 39002 verwendet ein doch eher faszinierend unerwartetes Tool zur Lösung der Aufgabe
  • lex Icon pastebin.gif 39001 Auch nicht gerade üblich :)
  • Lua Icon pastebin.gif 38830 demonstriert die Iteratorenanwendung in Lua, welche dort sehr angenehm zu verwenden ist.