Nein, geschwungene Klammern in einem Regulaeren Ausdruck geben entweder eine Anzahl oder einen Bereich an.
Code:
[u]{0,2} = Die Zeichengruppe mit dem Zeichen "u" soll zwischen 0 und 2 beliebig oft vorkommen (beides inklusive).
u{0,2} = Das Zeichen "u" soll zwischen 0 und 2 beliebig oft vorkommen (beides inklusive).
u{0,} = Das Zeichen "u" soll zwischen 0 und unendlich beliebig oft vorkommen (beides inklusive).
u{,2} = Das Zeichen "u" soll zwischen 0 und 2 beliebig oft vorkommen (beides inklusive).
Du kannst also mit Regulaeren Ausdruecken nicht eine solche Logik ausdruecken die du gerne haettest (okat, ich nehme das zurueck bevor mir jemand das REGEX DES TODES in's Gesich klatscht welches dass tatsaechlich kann).
Die einfachere Moeglichkeit hier waere eine simple Schleife in welchem du einfach die "u"s zaehlst:
Java:
// Der "alte" Weg, welche "char"s benutzt. Ein "char" kann aber nicht den vollen// Raum von Unicode abbilden, daher sollte man eher "codePoints" verwenden.int uCounter =0;for(char character :"4ufhiuh89f3h4iu8".toCharArray()){if(character =='u'){
uCounter++;}}System.out.println("Anzahl \"u\": "+Integer.toString(uCounter));
Java:
// Der "neue" Weg, welcher mit "codePoints" arbeitet und daher keine// Probleme mit Unicode hat.int uCounter =0;int uCodePoint =Character.codePointAt("u",0);for(int codePoint :"4ufhiuh89f3h4iu8".codePoints().toArray()){if(codePoint == uCodePoint){
uCounter++;}}System.out.println("Anzahl \"u\": "+Integer.toString(uCounter));
Mit der Anzahl kannst du dann machen was du willst.
Eventuell ein noch besserer Weg waere es, sich mit dem String den du suchst sich durch den String zu bewegen, in etwas so:
Du kannst also mit Regulaeren Ausdruecken nicht eine solche Logik ausdruecken die du gerne haettest (okat, ich nehme das zurueck bevor mir jemand das REGEX DES TODES in's Gesich klatscht welches dass tatsaechlich kann).