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
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
Und was wird dann aus “Da sprach die Echse ‘Skrst’.” ? Tja, das ist das Problem an solch hässlichen Hacks.
Das wäre natürlich bitter. Glücklicherweise gibt es eine JUnit Klasse (Prof. approved), die meine Methode völlig akzeptiert. :P