Danke für deine Hilfe und deinen Aufwand Moombas, leider bin ich im
SQL unterwegs und schreibe eine Procedur. In
SQL gibt es keine for schleifen, was ich ziemlich behämmert finde.
Eine ähnlcihe logik hatte ich zusammengebaut.
Code:
I=0;
NUMBER_C = '';
NUMBERS = '';
while (:I<CHAR_LENGTH(:IN_NUMBERS)) do // String durchgehen
begin
I=:I+1;
NUMBER_C = SUBSTRING(:IN_NUMBERS FROM :I FOR 1);
if (NUMBER_C SIMILAR TO '(') then // Wenn ( gefunden
begin
NUMBERS = :NUMBER_C; -- ( auslesen
I=:I+1;
while (:I<CHAR_LENGTH(:IN_NUMBERS)) do // weitere while schleife für Buchstaben
begin
IF (:NUMBER_C SIMILAR TO '[[:ALPHA:]äöüÄÖÜß]') THEN // Wenn Zeichen ein Buchstabe ist...
begin
NUMBERS = NUMBERS || :NUMBER_C; // Nach der ( Buchstabeninhalt auslesen
IF (:NUMBER_C SIMILAR TO '`') THEN // Wenn ) gefunden
begin
NUMBERS = NUMBERS || :NUMBER_C; -- ) auslesen
IN_NUMBERS = REPLACE(:IN_NUMBERS,NUMBERS,NUMBERS||'^'); // zur Trennung ^ setzen
end
end
else
begin
break; /* break aus der while, keine Buchstabe */
end
I=:I+1;
end
end
end
Hier funktioniert nur das if (NUMBER_C SIMILAR TO '(') nicht. Es kommt ein Fehler "Invalid SIMILAR TO pattern".
Ziemlich verzweifelnd.