Noch ne Regex-Frage: Verschachtelte Ausdrücke

Loyd

Mitglied
Ich bin mir darüber im Klaren, dass Reguläre Ausdrücke immer wieder zu mehr oder weniger blöden Fragen Anlass geben. Ich selbst setze Regexe seit "ewigen Zeiten" ein, habe aber für ein bestimmtes Problem keine Lösung.

Ich möchte mal fragen - vielleicht kennt jemand ja eine passende Lösung, oder vielleicht gibt es auch gar keine im Reich der ordinären regulären Ausdrücke, und man muss woanders suchen...

Das ist die 1. Zeile meiner generischen Klassendeklaration, für die ich eine Regex benötige:

Java:
public class Pair<A extends Comparable<A> & PubliclySerializable, B extends Comparable<B> & PubliclySerializable>
        implements Comparable<Pair<A,B>>, PubliclySerializable

Mit anderen Worten: Jemand könnte ohne weiteres ein Pair<Pair<X,Y>,Z> deklarieren. Ich möchte in jedem Fall diesen Wert in ASCII rausschreiben können (z.B. so: "Pair( Pair( \"test\", \"test\" ), 9 )"), möchte aber auch gerne einem Aufrufer mitteilen können, wie er den Wert herausparsen kann (will sagen: wie der Aufrufer ermitteln kann, wie groß der gesamte Ausdruck ist, wenn er ihn als Teil eines größeren Ganzen vorfindet). Der Aufrufer muss von Hause aus nicht wissen, wie z.B. dieses Pair aufgebaut ist.

Wie kann ich das mit Regexen tun? Wie kann ich es überhaupt tun?
 
S

SlaterB

Gast
worum gehts hier?
reguläre Ausdrücke sind zur Analyse von Strings, was hat das mit einer generischen Klassendefinition zu tun?
willst du Quelltext der Klasse oder eher der Aufrufe, der Definition von Variablen dieser Klasse, als String analysieren?

fange wenn möglich einfach an, z.B. mit
> public class Pair<T> {
schreibe dazu Aufrufe und ein bisschen Code der den Quelltext dazu analysiert wenn es darum geht,
danach komplizierter mit Interfacen, verschachtelten generischen Parametern usw., soweit du kommst,
das ganze hier posten damit man bisschen was erkennt und gegebenfalls nicht zuviel selber schreiben muss
 

Loyd

Mitglied
worum gehts hier?
reguläre Ausdrücke sind zur Analyse von Strings, was hat das mit einer generischen Klassendefinition zu tun?
willst du Quelltext der Klasse oder eher der Aufrufe, der Definition von Variablen dieser Klasse, als String analysieren?

Pair.java war ja bloß ein Beispiel - ich kann es gerne posten, wenn es hier irgendjemandem weiterhilft.

Generische Klassen haben dieses spezielle Problem, wenn sie sich selbst in einen Stream, von mir aus auch ein DataOutput oder ein PrintStream rausschreiben: Der Aufrufer kann nicht wissen, wie lang der Ausdruck sein wird (respektive: gewesen ist), es sei denn, man gibt ihm einen Hinweis.

Auch wenn das Ausgabeformat gewissen Regularien gehorcht, und unverschachtelt von mir aus die Regex "\\w+\\([^\\)]+\\)" zieht...

Dummerweise weiß nicht mal die abgeleitete Generics-Klasse selbst, wie lang der Ausdruck ist, bevor sie das ganze durchgeparst hat.

Soweit ich das sehen kann, ist das vollkommen unmöglich per Regex zu schaffen - es scheint auch nicht gerade trivial zu sein, das mit ANTLR zu programmieren, obwohl es doch eigentlich ein banaler, alltäglicher Vorgang sein müsste.
 
S

SlaterB

Gast
ich bin nicht sicher ob ich hier helfen kann und will auch nicht stören, aber mir scheint nach wie vor das Thema unklar,
die unübersehbaren Fragen meines ersten Postings hast du übersehen, jetzt gehts auch noch um Klassen die sich selber irgendwo hin schreiben,
für RegEx alles ungewöhnlich

> Generische Klassen haben dieses spezielle Problem, wenn sie sich selbst in einen Stream, von mir aus auch ein DataOutput oder ein PrintStream rausschreiben: Der Aufrufer kann nicht wissen, wie lang der Ausdruck sein wird (respektive: gewesen ist), es sei denn, man gibt ihm einen Hinweis.

- wie kann eine Klasse sich selber irgendwo hinschreiben?
- inwiefern ist das für das Thema hier relevant?
- welcher Aufrufer? wovon?
- was für ein Ausdruck? was für ein Hinweis?

??
 

Loyd

Mitglied
- wie kann eine Klasse sich selber irgendwo hinschreiben?
- inwiefern ist das für das Thema hier relevant?
- welcher Aufrufer? wovon?
- was für ein Ausdruck? was für ein Hinweis?

??
Hmm, ich glaube zu verstehen, worauf Du hinaus willst. Vielleicht ist mein Thema eher ein Meta-Thema, das woanders hingehört.

Ich habe auch ein bißchen Schwierigkeiten mit der deutschen Sprache, vielleicht wird es deswegen besonders unverständlich.

Ich schließe die Frage einfach - es würde einfach zu langwierig, jetzt auch noch soziale Probleme der Rezipienten mit einzubeziehen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
berserkerdq2 SceneBuilder GUI erstellt, nun muss ich noch ein Polygon erstellen, ist die Connection möglich? Allgemeine Java-Themen 3
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
T JavaPoet - (noch) nicht existente Typen Allgemeine Java-Themen 2
B Lottospielen mit System, Versuch 2, noch umständlicher als vorher Allgemeine Java-Themen 1
berserkerdq2 Wozu schreibe ich 3 und 1 noch hin? Allgemeine Java-Themen 5
S Noch eine Design-Frage zu Setter Allgemeine Java-Themen 6
Bluedaishi Prüfen ob Datei noch geöffnet ist Allgemeine Java-Themen 59
R JDK installieren Gibt es ab 2019 überhaupt noch Java? Allgemeine Java-Themen 6
S Wird bei den JREs 9, 10, 11+ ueberhaupt noch Bytecode ausgefuehrt..? Allgemeine Java-Themen 8
J Could not convert socket to TLS - gestern liefs noch Allgemeine Java-Themen 2
H Wie kann ich überprüfen ob das Feld noch frei ist? Allgemeine Java-Themen 5
M Windows 98 - Mit welchem JDK (Version) kann noch Programm dafür erstellt werden Allgemeine Java-Themen 6
R Seleium / WebDriver findet weder URL noch Title Allgemeine Java-Themen 1
HarleyDavidson Was ist das? Noch nie gesehen... Allgemeine Java-Themen 3
B Input/Output Datei noch geöffnet trotz Close Allgemeine Java-Themen 4
A Noch eine Frage zur Methode matches() Allgemeine Java-Themen 2
J Lebt das Objekt noch?? Allgemeine Java-Themen 12
I Exceptions - weder catch- noch finally-Klausel funktioniert Allgemeine Java-Themen 12
J Rekursive Methode und if-Blöcke, was wird noch ausgeführt? Allgemeine Java-Themen 2
D Brauche mal Hilfe bin noch nicht so fit Allgemeine Java-Themen 3
Y Mal wieder vergleichen von Strings.[Leider noch ein Problem] Allgemeine Java-Themen 18
S Zeichen, dass Programm noch läuft Allgemeine Java-Themen 3
G Sind Applets noch uptodate Allgemeine Java-Themen 24
G Aufruf einer Methode wenn Klasse noch nicht existiert Allgemeine Java-Themen 3
A Noch freie Nummern anzeigen lassen Allgemeine Java-Themen 3
J Immer noch OpenOffice.org - Malheur Allgemeine Java-Themen 4
A Warum hab ich noch nie ein .jar Archiv gesehen? Allgemeine Java-Themen 5
T Geht das vielleicht noch einfacher? Allgemeine Java-Themen 7
G Java Cryptography Extension (JCE) mit Java 1.6 noch aktuell? Allgemeine Java-Themen 1
P Source code verloren habe nur noch kompilierte .jar. Allgemeine Java-Themen 12
E Nach Packen in Jar ist Sound nur noch abgehackt zu hören Allgemeine Java-Themen 2
F JSP noch aktuell? Allgemeine Java-Themen 5
Ark Noch mal Fourier Allgemeine Java-Themen 2
S Prozess javaw.exe läuft immer noch, obwohl Programm beendet Allgemeine Java-Themen 6
G Was soll noch alles in Java kommen? Allgemeine Java-Themen 14
B Noch einmal Kopierschutz, sorry Allgemeine Java-Themen 7
G nur noch 2 kleinigkeiten dann bin ich glücklich^^ Allgemeine Java-Themen 2
M Kann man hier noch was rausholen? Allgemeine Java-Themen 16
flashfactor Testen ob ein R/3 erreichbar bzw. noch am leben ist. Allgemeine Java-Themen 2
M noch ein rendererversuch Allgemeine Java-Themen 8
D Laufen meine alten progs auf java 5 noch? Allgemeine Java-Themen 7
D Threads wollen weder schlafen noch aufgewckt werden! Allgemeine Java-Themen 6
C Was geht noch? Allgemeine Java-Themen 13
H Frage regex greater than less than Allgemeine Java-Themen 7
N Regex schlägt nicht an Allgemeine Java-Themen 10
W Variable Initialisierung mit dem Ergebnis einer Regex Allgemeine Java-Themen 1
T regex case insensitive trimmed Allgemeine Java-Themen 6
S Zeichen | in regex Allgemeine Java-Themen 8
X Regex mit mehreren Bedingungen machen Allgemeine Java-Themen 5
N Hilfe bei RegEx benötigt Allgemeine Java-Themen 3
C Java17 und Regex Allgemeine Java-Themen 13
OnDemand RegEx /compilebekomme nicht die erwarteten Werte Allgemeine Java-Themen 9
N Gierigen Regex in nicht-gierigen umwandeln Allgemeine Java-Themen 4
N E-Mail Validator (ohne Regex!) Allgemeine Java-Themen 7
OnDemand Regex von bis Allgemeine Java-Themen 6
White_Fox Versionsnummer auslesen - Regex ist zickig Allgemeine Java-Themen 2
L RegEx für Teile einer Berechnung Allgemeine Java-Themen 14
G Regex Allgemeine Java-Themen 2
L regex ganzer string? Allgemeine Java-Themen 2
MiMa Geldbetrag mit regex ermitteln. Allgemeine Java-Themen 14
W RegEx Stringliteral finden - Jflex Allgemeine Java-Themen 5
D Regex Probleme Allgemeine Java-Themen 2
Kirby.exe Regex charakter ignorieren Allgemeine Java-Themen 12
S Java SAT (Haltbarkeitsproblem) mit Regex Allgemeine Java-Themen 6
S [Regex] Nur diese Zeichen beachten Allgemeine Java-Themen 1
M Bitte Hilfe mit REGEX (Negieren) Allgemeine Java-Themen 4
J Compilerfehler bis in java.util.regex.Pattern... Allgemeine Java-Themen 2
C PDFBox: Nach RegEx ganze Zeile Allgemeine Java-Themen 4
S Regex mit UND-Verknüpfung Allgemeine Java-Themen 1
P RegEx für Zeiten Allgemeine Java-Themen 7
D Regex: Komplettes Wort bekommen Allgemeine Java-Themen 3
Neumi5694 Operatoren regEx für das Erstellen eines Strings verwenden Allgemeine Java-Themen 3
P RegEx Allgemeine Java-Themen 3
W String Parsen und auf eigenes Muster anwenden (kein Regex) Allgemeine Java-Themen 11
Y regex | n-faches Vorkommen oder gar keins Allgemeine Java-Themen 6
turmaline Regex gegen Regex prüfen Allgemeine Java-Themen 4
HarleyDavidson Regex - Optimierung Allgemeine Java-Themen 4
M Regex für Zahleneingabe in JavaFX Textfield Allgemeine Java-Themen 18
T Best Practice Wortregeln RegEx Allgemeine Java-Themen 11
A ALTER TABLE mit Hilfe von RegEx zerlegen, splitten Allgemeine Java-Themen 5
H Interpreter-Fehler Regex kompiliert nicht Allgemeine Java-Themen 5
M RegEx alle Matches ausgeben Allgemeine Java-Themen 5
Iron Monkey Mit Regex nach Beträge suchen Allgemeine Java-Themen 4
T REGEX Erklaerung Allgemeine Java-Themen 14
T Nur innerhalb des regex-Match ersetzen Allgemeine Java-Themen 9
H Pic Download / Regex Problem Allgemeine Java-Themen 7
F Frage zu Regex möglich Allgemeine Java-Themen 4
M Regex... mal wieder Allgemeine Java-Themen 3
H RegEx - Ersetze alles bis Leerzeichen Allgemeine Java-Themen 5
S regex verbrät CPU Allgemeine Java-Themen 6
V Regex Bereichs Filter Allgemeine Java-Themen 4
127.0.0.1 RegEx _ und 0-9 Allgemeine Java-Themen 45
S Entfernen von allen Nicht-Buchstaben chars aus einem String ohne Regex..? Allgemeine Java-Themen 10
P Java String Regex Allgemeine Java-Themen 2
AyKay Regex XPath Allgemeine Java-Themen 4
C Regex (Case insensitive und Umlaute) Allgemeine Java-Themen 4
D Regex Raute erkennen Allgemeine Java-Themen 2
nrg Zweistelligen Zahlenbereich mit RegEx Allgemeine Java-Themen 8

Ähnliche Java Themen


Oben