Stefan: Regex Problem, alles außer bestimmte Zahlen

Beitrag lesen

Prüfe mit einem Regex, ob es sich bei dem String um eine Zahl mit 3 Stellen handelt.

Wenn ja, prüfe in einer Schleife für jedes Array-Element, ob es mit dem String identisch ist.

Die Schleife bräuchtest Du sowieso, um die Zahlen in einen wie auch immer gearteten Regex (evtl. mit haufenweise negativen Lookaheads) zusammenzubauen, der auf alle Zahlen im Array prüft. Und da dürfte es effizienter sein, im Schleifendurchlauf gleich gegen den String zu prüfen.

Ich würd das aber gern in einem einzigen Regex Audruck unterbringen, also ob die Zahl 3 Stellen hat und nicht den angegebenen Zahlen entspricht. Das Java Programm will nämlich als Benutzereingabenprüfung ein Regexpattern.

Mal von den 3 Stellen abgesehen hab ich versucht es so irgendwie zu testen: [^(^1$|^2$|^3$|^14$)] was zur Folge hat:

1 against [^1$|^2$|^3$|^14$] -> false
2 against [^1$|^2$|^3$|^14$] -> false
3 against [^1$|^2$|^3$|^14$] -> false
4 against [^1$|^2$|^3$|^14$] -> false
5 against [^1$|^2$|^3$|^14$] -> true
7 against [^1$|^2$|^3$|^14$] -> true
9 against [^1$|^2$|^3$|^14$] -> true
10 against [^1$|^2$|^3$|^14$] -> false
11 against [^1$|^2$|^3$|^14$] -> false
12 against [^1$|^2$|^3$|^14$] -> false
13 against [^1$|^2$|^3$|^14$] -> false
14 against [^1$|^2$|^3$|^14$] -> false