Regex der traurige Seeelefant xD

Ich bin mir im klaren darüber, dass meine Lösung vllt. etwas Plump ist. Aber sie funktioniert. :-D
Und ja … man kann es auch besser machen:
http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck#Look-around_assertions

Seeelefant Aufgabe regex
Seeelefant Aufgabe regex

    public String spreche(String text) {
        String result = text;

        result = result.replaceAll("ei", "skrst");
        result = result.replaceAll("Ei", "Skrst");
        result = result.replaceAll("(i|ie|e)+", "ö");
        result = result.replaceAll("(I|Ie|E)+", "Ö");
        result = result.replaceAll("skrst", "eu");
        result = result.replaceAll("Skrst", "Eu");
        
        
        // eu/Eu vor u->o schuetzen :-)
        result = result.replaceAll("eu", "skrst");
        result = result.replaceAll("Eu", "Skrst");

        // au -> akrst
        result = result.replaceAll("au", "akrst");
        result = result.replaceAll("Au", "Akrst");
        // u -> o
        result = result.replaceAll("u", "o");
        result = result.replaceAll("U", "O");
        // akrst -> au
        result = result.replaceAll("akrst", "au");
        result = result.replaceAll("Akrst", "Au");

        // eu/Eu wieder zuruecksetzen
        result = result.replaceAll("skrst", "eu");
        result = result.replaceAll("Skrst", "Eu");
        
        return result;
    }

2 thoughts on Regex der traurige Seeelefant xD

  1. Und was wird dann aus “Da sprach die Echse ‘Skrst’.” ? Tja, das ist das Problem an solch hässlichen Hacks.

  2. Das wäre natürlich bitter. Glücklicherweise gibt es eine JUnit Klasse (Prof. approved), die meine Methode völlig akzeptiert. :P

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.