Regulärer Ausdruck um sich wiederholende Zeichen zu finden.

Status
Nicht offen für weitere Antworten.

pyjo

Mitglied
Hallo,

meine Frage habe ich ja eigentlich schon gestellt, aber eigentlich ist das nicht meine Frage sondern mein Problem.
Ich möchte sich wiederholende Zeichen in einem Text finden. Dabei soll das Zeichen egal sein.

Ich habe folgendes geschrieben:
Code:
...
import org.apache.regexp.RE;
...
String regexp = "(.)\\1+";
RE r = new RE(regexp);
while(r.match(s.toString())) {
					String wholeExpr = r.getParen(0);
}

Wie man wohl unschwer erkennen kann, benutze ich das Jakarte RegExp Packet der Apache Group.

Wenn ich den Code jedoch ausführen will, erhalte ich folgende Exception:
Code:
org.apache.regexp.RESyntaxException: Syntax error: Closure operand can't be nullable
	at org.apache.regexp.RECompiler.syntaxError(Unknown Source)
	at org.apache.regexp.RECompiler.closure(Unknown Source)
	at org.apache.regexp.RECompiler.branch(Unknown Source)
	at org.apache.regexp.RECompiler.expr(Unknown Source)
	at org.apache.regexp.RECompiler.compile(Unknown Source)
	at org.apache.regexp.RE.<init>(Unknown Source)
	at org.apache.regexp.RE.<init>(Unknown Source)
	at de.hobby_coder.compression.Lauflaengencodierung.Ausführen(Lauflaengencodierung.java:54)
	at de.hobby_coder.compression.TestLauflaengencodierung.main(TestLauflaengencodierung.java:28)

Ohne das + hinter dem \\1 (Backreferenz auf den ersten ()-Block) funktioniert das ganze wieder.
Kennt jemand dieses Problem bzw. kann er mir helfen?
In Perl funktioniert dieser Reguläre Ausdruck ohne Probleme.
Mit dem Java RegExp bin ich leider nicht so vertraut :(

Und wenn ich nach diesem Problem suche, dann bekomme ich nur ein paar Ergebnisse und ddas ist meistens nur Quellcode der RECompiler.java.

thx4help
ViperT[/code]
 

pyjo

Mitglied
Roar hat gesagt.:
Das wird jede folge von Zeichen finden -> Damit bekomme ich nur die Zeilen aus einem Text.
Vielleicht habe ich auch nicht genug gesagt, ich brauche die Zeichenfolge nach Zeichen aufgeteilt.

Also aus dem: oooooddxxx00000444mmm222
muss ich sowas machen:
Code:
{
  "ooooo",
  "dd",
  "xxx",
  "00000",
  "444",
  "mmm",
  "222"
}

Ich hoffe du verstehst was ich meine. Ich schau mir nochmal den Java eigenen Regexp an, aber wenn ich mich recht entsinne, kann der kein Backreference und das bräuchte ich nunmal hierfür.

[Edit:] Also ich habe es jetzt mal mit dem Java Regexp probiert und glaube nicht, dass ich damit mein Problem lösen kann. :(
 

Leroy42

Top Contributor
Ich kann mir nicht vorstellen, das es hierfür
überhaupt einen regulären Ausdruck gibt (Typ-3-Grammatik)
 

pyjo

Mitglied
Wie gesagt, in Perl/PCRE funktioniert das!

Wer es testen möchte:
Code:
#!/usr/bin/perl

$s = "aaakklddppppeeeüüü1999333,,fdsd3lll33ffffaaaa";

while($s =~ /(.)(\1+)/g) {
	print "found: ";
	print $1;
	print "\n";
	print $2;
	print "\n";
}

print "ende";
print "\n";

Die Ausgabe:
Code:
found: a
aa
found: k
k
found: d
d
found: p
ppp
found: e
ee
found: 9
99
found: 3
33
found: ,
,
found: l
ll
found: 3
3
found: f
fff
found: a
aaa
ende
 

pyjo

Mitglied
Wildcard hat gesagt.:

Ok, ich bin definitiv verwirrt, warum bringt dieser Code keinen Erfolg:
Code:
String s = "aaakklddppppeeeüüü1999333,,fdsd3lll33ffffaaaa";
Pattern p = Pattern.compile("(.)");
Matcher m = p.matcher(s.toString());
if (m.matches()) {
	System.out.println("YES");	
}

Egal ob der Regexp "\\w", "(.)", ".", "(.)\\1" ist, nichts funktioniert??? Ich bin jetzt irgentwie von der Rolle ???:L
 

Wildcard

Top Contributor
Bei matches muss der gesamte String auf den RegEx passen.
Dein String ist aber offensichtlich länger als das eine Zeichen das dein '.' captured :wink:
 

pyjo

Mitglied
alles klar, wer lesen kann ist klar im Vorteil ^^

Danke für die Hilfe, ich hätte es wohl doch direkt mit dem Java eigenen Regexp versuchen sollen.
Hier der Code, mit dem es funktioniert:
Code:
Strings = "aaakklddppppeeeüüü1999333,,fdsd3lll33ffffaaaa";
String regexp = "(.)\\1+";
int offset = 0;
Pattern p = Pattern.compile(regexp);
Matcher m = p.matcher(s);
while (m.find(offset)) {
	offset = m.end();
	System.out.println(m.group());
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
O regulärer Ausdruck zum durchsuchen eines Strings verwenden Allgemeine Java-Themen 2
N Regulärer Ausdruck funktioniert nicht Allgemeine Java-Themen 6
W Regulärer Ausdruck für 0 oder mehr Blanks Allgemeine Java-Themen 8
M Regulärer Ausdruck Allgemeine Java-Themen 3
R Regulärer Ausdruck Allgemeine Java-Themen 5
G Regulärer Ausdruck für 2 Wörter Allgemeine Java-Themen 3
P JFormattedTextField für durch Semikolon getrennte Integer-Werte gesucht / Regulärer Ausdruck Allgemeine Java-Themen 3
H Problem mit der Klasse Pattern - Regulärer Ausdruck Allgemeine Java-Themen 2
S Regulärer Ausdruck tut überhaupt nichts Allgemeine Java-Themen 2
M Regulärer Ausdruck Allgemeine Java-Themen 6
Iron Monkey Regulärer Ausdruck Allgemeine Java-Themen 2
T Regulärer Ausdruck Allgemeine Java-Themen 6
S Regulärer Ausdruck für HTML-Tag Allgemeine Java-Themen 18
P [Regulärer Ausdruck] Auf Gruppe mit Quantifier separat zugreifen? Allgemeine Java-Themen 2
J Regulärer Ausdruck - Der Punkt und der Zeilenumbruch Allgemeine Java-Themen 6
Iron Monkey Regulärer Ausdruck Allgemeine Java-Themen 6
A Regulärer Ausdruck für die Uhrzeit Allgemeine Java-Themen 3
G Regulärer Ausdruck Allgemeine Java-Themen 4
M Regulärer Ausdruck Allgemeine Java-Themen 3
M Regulärer Ausdruck mit [ und ] Allgemeine Java-Themen 9
P Problem - Regulärer Ausdruck funktioniert nicht Allgemeine Java-Themen 5
J Regulärer Ausdruck Allgemeine Java-Themen 3
N Regulärer Ausdruck Allgemeine Java-Themen 2
M Regulärer Ausdruck Allgemeine Java-Themen 2
B regulärer ausdruck Allgemeine Java-Themen 9
T Einfacher regulärer Ausdruck Allgemeine Java-Themen 2
A Regulärer Ausdruck EMail-Prüfung Allgemeine Java-Themen 3
N Regulärer Ausdruck Allgemeine Java-Themen 2
N Regulären Ausdruck in normalen Java-Code umwandeln Allgemeine Java-Themen 12
G JavaFX var Ausdruck Allgemeine Java-Themen 1
S Hex Ausdruck kürzen Allgemeine Java-Themen 34
LimDul Hä? Lambda-Ausdruck geht, Methoden-Referenz nicht Allgemeine Java-Themen 8
L Erste Schritte Ausdruck schöner schreiben? Allgemeine Java-Themen 8
J Frage zu regulärem Ausdruck Allgemeine Java-Themen 2
H Reg Exp Ausdruck erweitern Allgemeine Java-Themen 2
A Bestimmte Sonderzeichen im Regulären Ausdruck Allgemeine Java-Themen 2
B Problem mit Regulärem Ausdruck Allgemeine Java-Themen 4
J RegEx Ausdruck Allgemeine Java-Themen 2
G RegEx- Ausdruck Allgemeine Java-Themen 4
L String Replace mit Regulärem Ausdruck Allgemeine Java-Themen 2
O Text mit Wildcard gegen regulären Ausdruck prüfen Allgemeine Java-Themen 3
T Ausdruck mit pdfBox macht Probleme Allgemeine Java-Themen 2
M Ausgabe in Datei zum Ausdruck Allgemeine Java-Themen 2
F Problem mit regulären Ausdruck in Zusammenhang mit HTML Allgemeine Java-Themen 8
X String zerlegen mittels regulärem Ausdruck Allgemeine Java-Themen 31
M Wertepaar in relulärem Ausdruck Allgemeine Java-Themen 15
A Regulären Ausdruck für Funktionsnamen Allgemeine Java-Themen 4
M Regulären Ausdruck negieren Allgemeine Java-Themen 6
G Frage zu Regulärem Ausdruck Allgemeine Java-Themen 2
S regex-Pattern Ausdruck negieren Allgemeine Java-Themen 2
L Passwort mit Regulärem Ausdruck prüfen Allgemeine Java-Themen 6
I Composite Pattern für Ausgabe von Ausdruck Allgemeine Java-Themen 3
X problem mit regulären ausdruck Allgemeine Java-Themen 3
F Problem mit regulärem Ausdruck Allgemeine Java-Themen 6
M backreference im regulären ausdruck Allgemeine Java-Themen 9
A Probleme Umwandlung Ausdruck String in double Allgemeine Java-Themen 4
P Dateinamen mit regulärem Ausdruck testen Allgemeine Java-Themen 9
N Lwjgl 3d Objekt wird schmaler, wenn es sich dreht Allgemeine Java-Themen 0
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
A Eclipse hängt sich auf Allgemeine Java-Themen 7
D Image bewegt sich nicht nach Klicken auf Button Allgemeine Java-Themen 15
Viper13125 Eclipse Hängt sich auf, wenn ich SimpelDateFormat drin lasse Allgemeine Java-Themen 2
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
Tiago1234 Warum hängt sich mein Programm auf? Allgemeine Java-Themen 22
C Parsen einer sich updatenden Html mithilfe von jsoup Allgemeine Java-Themen 4
Kiki01 Häufigster Buchstabe lässt sich nicht ermitteln Allgemeine Java-Themen 30
Tobero Wie berechnet man ob zwei Linien sich schneiden? Allgemeine Java-Themen 2
T Projekt baut nicht mehr/lässt sich nicht mehr ausführen Allgemeine Java-Themen 6
Tobero Wie bekomme ich in welchem Quadrat sich eine Position in einem Grid befindet Allgemeine Java-Themen 11
O Jar lässt sich auf bestimmten Pc nicht starten Allgemeine Java-Themen 18
D Anfänger versucht sich an Xtext Allgemeine Java-Themen 0
F Sich automatisch aufrufende Java-Methoden Allgemeine Java-Themen 2
kodela Inhalt eines Arrays ändert sich mysteriös Allgemeine Java-Themen 2
P JavaFX Anwendung beendet sich selbst nur als Jar Allgemeine Java-Themen 40
Drachenbauer Wie finde ich den Aufrufer zu einer Methode, die sich nicht in meinem Projekt befindet? Allgemeine Java-Themen 2
A 2D-Grafik Einfachster Ansatz, um sich wiederholende Figur in einem 2D-Image zu erkennen Allgemeine Java-Themen 1
M String lässt sich nicht Zusammenfügen Allgemeine Java-Themen 10
I Lohnt sich heutzutage der Aufwand einer Portierung für MacOS Allgemeine Java-Themen 8
G Jar lässt sich mit macOS nicht starten Allgemeine Java-Themen 9
H Erste Schritte Ausführbare Dateien lassen sich nicht starten Allgemeine Java-Themen 5
L Excel Datei löscht sich selbst im Programm - Java Allgemeine Java-Themen 3
K OOP Daten addieren sich bei GUI-Eingabe Allgemeine Java-Themen 10
K ursprüngliche ArrayList ändert sich bei Übergabe in Methode Allgemeine Java-Themen 18
N Quicksort Programm hängt sich auf Allgemeine Java-Themen 6
S Compiler-Fehler Programm verhält sich in Eclipse anders Allgemeine Java-Themen 1
G Beendet sich der Thread selbst?! Allgemeine Java-Themen 3
S Compiler-Fehler IntelliJ Projektdatei lässt sich nicht erstellen. Allgemeine Java-Themen 15
J Bilder lassen sich nicht importieren Allgemeine Java-Themen 3
E GUI.jfm lässt sich nicht mehr öffnen Allgemeine Java-Themen 1
H Kennt sich jemand mit Eclipse und dem Thema Jar-File aus ? Allgemeine Java-Themen 6
S Programm hängt sich manchmal (selten) auf Allgemeine Java-Themen 9
D System.arraycopy verhält sich seltsam Allgemeine Java-Themen 1
C Threads Methode verhält sich merkwürdig Allgemeine Java-Themen 18
D Best Practice Gesamten Bildschirminhalt auslesen und Email schicken sobald kein Pixel sich ändert Allgemeine Java-Themen 11
K jar-Datei lässt sich unter Windows nicht verwenden Allgemeine Java-Themen 3
X Sich wiederholende substrings finden Allgemeine Java-Themen 6
P Input/Output Inputstream verhält sich verschieden Allgemeine Java-Themen 9
T Minimax/Alphabeta Algorithmus hängt sich auf (?) Allgemeine Java-Themen 2
Tausendsassa Threads Einen Thread sich selbst schließen lassen Allgemeine Java-Themen 17
K Java installiert sich nicht ganz Allgemeine Java-Themen 15

Ähnliche Java Themen

Neue Themen


Oben