Zuerst würd' ich den Text in reine Kleinbuchstaben umwandeln, damit nicht über Unterschiede in der Groß-Kleinschreibung gestolpert wird.
Danach in einer Schleife die Zeichenfolge durchgehen, nur als Pseudocode:
Delphi-Quellcode:
function CleanUpText(sInput : Strng) : String;
var
i : Integer;
begin
Result := '';
for i := 1 to Length(sInput) do begin
case sInput[i] of
'a'..'z' : Result := Result + sInput[i];
'A'..'Z' : Result := Result + LowerCase(sInput[i]);
// Sind Umlaute relevant?
'Ä','ä' : Result := Result + 'a'; // das a ist Absicht, wegen z. B. Flughafen und Flughäfen
'Ö','ö' : Result := Result + 'o';
'Ü','ü' : Result := Result + 'u';
'ß' : Result := Result + 'ss';
end;
end;
Bringt das was?