Wörter ersetzen mit regex

Status
Nicht offen für weitere Antworten.

sisko78

Bekanntes Mitglied
Hallo,
will in einem Text eingeklammerte Begriffe durch was schöneres ersetzen, ich benutze eine JTextPane für die Anzeige.
Kann man das so machen oder ist das zu resourcenhungrig?
Code:
      Vector v = new Vector();
      String text = new String(data);
      String snippet = "\\[\\[(.*?)\\]\\]";
      String[] textArray = text.split(snippet);  
      Pattern pattern = Pattern.compile(snippet);
      Matcher matcher = pattern.matcher(text);
      while (matcher.find()){     
       v.add(matcher.group(1)); 
      }
      for (int i=0;i<textArray.length;i++){    
        textPane.appendText(textArray[i],"regular");
        textPane.appendText((String)v.get(i),"blue");
      }
 

Wildcard

Top Contributor
Ich versteh nicht ganz warum du erst splittest, und dann einen Matcher verwendest. Vieleicht sagst du mal ein paar Worte zur Erklärung.
 

sisko78

Bekanntes Mitglied
Ja ok, könnte zwei Gruppen benutzen, hab aber auf die Schnelle kein geeignetes pattern gefunden
(.*?)\\[\\[(.*?)\\]\\] haut nicht ganz hin.
Jedenfalls will ich den mit Klammern versehenen Wörtern eine andere Formatierung geben.
Noch ne andere Frage: ist es irgendwie mit vertretbarem Aufwand möglich, sowas ähnliches wie nen HyperlinkListener zu realisiseren, so das meintwegen, wenn StyledDocument.insertString(..) aufgerufen wird, das entsprechende Textelement auf MouseEvents reagieren kann?


Gruß
sisko78
 

Wildcard

Top Contributor
Also du willst Wörter die in Klammern stehen ersetzen?
Dann mach das doch. Wozu das split :bahnhof:
Beim Pattern kann ich dir nicht helfen wenn ich nicht weiß wie die Eingabe aussieht und wie die Ausgabe aussehen soll...
 

Bleiglanz

Gesperrter Benutzer
Code:
\\[\\[(.*?)\\]\\]
.*? 
 ist doch käse nur um die ] auszuschalten,
 warum machst du nicht [a-zA-Z]+

BTW gibts auch replaceAll
 

sisko78

Bekanntes Mitglied
Ok, also der text sieht so aus:
Code:
blalba .. flasfo'ljadf<lsadjf [[link]] asfjkhab asjfhasf &adsfkja* adfvadsf [[anderer Link]] afasf....
jetzt will ich das ganze zu ner JTextPane hinzufügen, um text und link verschieden zu formatieren, muss ich ja nicht nur einfach [ und ] entfernen, sondern die einzelnen Teile herausextrahieren können und abwechselnd zur TextPane hinzufügen können. Wüsste nicht, wie ich das mit "character class Range" oder replaceAll() geschickt machen sollte.
Ein pattern, dass mir text bis [ und zusätzlich link liefert, wäre nicht schlecht, also irgendwie mit zwei Gruppen, die ich dann abfragen kann.
Danke für die Antworten bis hierher.
 

sisko78

Bekanntes Mitglied
Hab jetzt sowas, ist aber auch nicht so toll, da ich nicht weiss, ob der text nicht vielleicht mit nem link beginnt:
Code:
    String snippet = "[^\\[\\]]+";
 

Wildcard

Top Contributor
Werd doch bitte mal deutlicher. Wie sieht der Text aus, was soll dann passieren?
Mach am besten ein Beispiel...
 

sisko78

Bekanntes Mitglied
Also hier ein Beispiel:

Ein [[Offlinelexikon]] wird angefragt und gibt einen [[String]] mit der [[Definition]] zurück.
Jeder doppelt eingeklammerte Begriff macht deutlich, dass ein weiterer Eintrag in diesem
[[Lexikon]] vorhanden ist. Es können aber auch [[Sonderzeichen]] im Text vorkommen.

soll in einer JTextpane werden zu:

Ein Offlinelexikon wird angefragt und gibt einen String mit der Definition zurück. Jeder doppelt eingeklammerte Begriff macht deutlich, dass ein weiterer Eintrag in diesem Lexikon vorhanden ist. Es können aber auch Sonderzeichen im Text vorkommen.
 

sisko78

Bekanntes Mitglied
danke, hatte vergessen zu erwähnen, dass ich kein HTML verwenden wollte, mit tags ist klar.

edit: vielleicht etwas missverständlich formuliert, wollte das aber möglichst effizient ohne html Tags lösen, naja, irgendwie funktionieren meine jetzigen Lösungen ja..

Gruß
sisko78
 

sisko78

Bekanntes Mitglied
hoffe, das ist jetzt nicht zu frech, aber ich habe den Hacken jetzt mal wieder entfernt, den jemand gesetzt hat, vielleicht kommt ja noch ein Vorschlag
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
AGW in Java-Code plötzlich ein paar Wörter in Rot Allgemeine Java-Themen 2
C Kürzeste Wörter bestimmen Allgemeine Java-Themen 8
K Java Standardbib/reservierte Wörter erweitern Allgemeine Java-Themen 1
B Java Audio in Wörter/Phonems aufteilen Allgemeine Java-Themen 0
OlafHD Prozentualer Abgleich von zweit Sätzen/Wörter Allgemeine Java-Themen 5
J Mehrere Wörter getrennt in eine Array einlesen, wie ? Allgemeine Java-Themen 7
B Per Buttonklicks einer Liste Wörter hinzufügen - Wie umsetzen? Allgemeine Java-Themen 11
D Wörter aus Datei einlesen Allgemeine Java-Themen 9
K Wörter in Strings zählen Allgemeine Java-Themen 7
S Speichern/Laden/Hinzufügen/Löschen der Array-Wörter; unerwartete Ausgabe Allgemeine Java-Themen 6
T Wörter Vergleichen Allgemeine Java-Themen 3
G Regulärer Ausdruck für 2 Wörter Allgemeine Java-Themen 3
D Wort in Text mit >100.000 Wörter finden Allgemeine Java-Themen 7
S Wörter ohne Leerzeichen erkennen Allgemeine Java-Themen 5
J Neue Wörter bilden Allgemeine Java-Themen 10
L Textdatei nach Wörter durchsuchen Allgemeine Java-Themen 3
J String Wörter zählen Allgemeine Java-Themen 4
M Wörter Algorithmus Allgemeine Java-Themen 7
M JTextPane Mausklick auf bestimmte Wörter startet Aktion Allgemeine Java-Themen 8
E Ersetzen eines Bildes in der Kopfzeile eines Word-Docx-Dokuments mit Apache POI XWPF Allgemeine Java-Themen 0
Noahscript Aus einem byte Array Steuerungszeichen und Code bekommen und ersetzen Allgemeine Java-Themen 3
I Apache POI Bild in Word ersetzen Allgemeine Java-Themen 15
Drachenbauer Wie kann ich das Wort "concrete" in einem String durch ein anderes Wort ersetzen lassen? Allgemeine Java-Themen 5
I Buchstabe durch seinen Nachfolger ersetzen Allgemeine Java-Themen 29
J Reflection Aufruf: .class durch .dll ersetzen Allgemeine Java-Themen 4
I Text suchen und ersetzen im Word Dokument Allgemeine Java-Themen 3
X public Getter ersetzen (Reflection?!) Allgemeine Java-Themen 3
L Vererbung If-Else ersetzen durch was? Allgemeine Java-Themen 20
M Alles außer Muster in String ersetzen Allgemeine Java-Themen 1
S Kann man mit einem GeneralPath.curveTo ein GeneralPath.quadTo ersetzen..? Allgemeine Java-Themen 2
Seikuassi Alle Escape-Sequenzen in einem String ersetzen Allgemeine Java-Themen 4
S RandomAccessFile durch bytearrayinputstream ersetzen Allgemeine Java-Themen 4
S JTable: Model durch ein anderes ersetzen Allgemeine Java-Themen 2
C Hex Zeichen ersetzen durch leer Zeichen Allgemeine Java-Themen 5
T Nur innerhalb des regex-Match ersetzen Allgemeine Java-Themen 9
E NetBeans Vector durch ArrayList ersetzen Allgemeine Java-Themen 4
C Variablen $-Zeichen in String ersetzen Allgemeine Java-Themen 3
D Ersetzen in Open Office Dokument Allgemeine Java-Themen 2
F Slash durch Systembezogenen Fileseparator ersetzen Allgemeine Java-Themen 18
F System.out.println mit log4j ersetzen Allgemeine Java-Themen 10
X Klassen innerhalb einer jar ersetzen Allgemeine Java-Themen 2
D Fehler beim ersetzen in String Allgemeine Java-Themen 2
2 String matchen und ersetzen Allgemeine Java-Themen 3
M Eclipse drei slashs durch zwei ersetzen? Allgemeine Java-Themen 3
J HTML-Sonderzeichen ersetzen Allgemeine Java-Themen 2
Daniel_L RegEx-Frage: Ersetzen in UBB ausschließen Allgemeine Java-Themen 2
Ark Array durch Interface ersetzen Allgemeine Java-Themen 7
thE_29 $ in String ersetzen fürs nochmalige ersetzen.. (JavaBug?) Allgemeine Java-Themen 7
nrg JS als ScriptEngine - alle Punkte ersetzen Allgemeine Java-Themen 4
S String in Datei finden und ersetzen Allgemeine Java-Themen 11
O Zeichenkette aus Zeichenkette ersetzen mit Hashtable Allgemeine Java-Themen 8
Guybrush Threepwood Effizientes Ersetzen von Umlauten Allgemeine Java-Themen 3
W dateiinhalte ersetzen Allgemeine Java-Themen 2
M Klasse zur Laufzeit ersetzen Allgemeine Java-Themen 10
S teile einer datei mit Regexp ersetzen Allgemeine Java-Themen 5
M String ersetzen Allgemeine Java-Themen 10
M Ersetzen von &#xD; Allgemeine Java-Themen 2
M Suchen und Ersetzen? Allgemeine Java-Themen 4
G String.replaceall - mehrere Zeichen durch eines ersetzen Allgemeine Java-Themen 5
Daniel_L RegEx - variable Vorkommen ersetzen? Allgemeine Java-Themen 5
E *.class ändern/ersetzen/überschreiben. Allgemeine Java-Themen 9
J Teile eines Strings ersetzen Allgemeine Java-Themen 2
R Farbe im Bild ersetzen Allgemeine Java-Themen 11
J Zweidimensionales Array durch ZwischenArray ersetzen Allgemeine Java-Themen 3
J Chars in einem String durch "nichts" ersetzen Allgemeine Java-Themen 3
F [ und mit replaceAll() ersetzen Allgemeine Java-Themen 2
A Fehler beim Ersetzen eines Strings Allgemeine Java-Themen 3
G Suchen und Ersetzen bei JTextAray Allgemeine Java-Themen 3
M RegEx: Muster ersetzen Allgemeine Java-Themen 6
V Lib für Strings suchen und ersetzen (erweitert) Allgemeine Java-Themen 3
M Variablen in einer .doc Vorlage ersetzen Allgemeine Java-Themen 4
M Worte aus Textdatei mit Java ersetzen Allgemeine Java-Themen 4
R Datum in *.txt suchen und ersetzen Allgemeine Java-Themen 2
E Regex Frage (+ ersetzen) Allgemeine Java-Themen 18
T Bestimmte bytes in einer Datei ersetzen? Allgemeine Java-Themen 4
P replaceAll und "\" durch "/" ersetzen Allgemeine Java-Themen 15
J Vector - Wert ersetzen Allgemeine Java-Themen 14
G Ersetzen von " durch " Allgemeine Java-Themen 4
T Slashes in String durch Punkte ersetzen Allgemeine Java-Themen 2
L ein char in einem string ersetzen? Allgemeine Java-Themen 5
R String.replaceAll $lt; ersetzen Allgemeine Java-Themen 3
Maximum '.' in String ersetzen macht Schwierigkeiten Allgemeine Java-Themen 2
T Systemunabhängig File Separator ersetzen Allgemeine Java-Themen 13
M RS232 Schnittstelle ansteuern (Floppy durch Laptop ersetzen) Allgemeine Java-Themen 2
C "<" durch "/<" ersetzen Allgemeine Java-Themen 14
G Suchwörter in einen Text ersetzen Allgemeine Java-Themen 6
C Collection Element ersetzen Allgemeine Java-Themen 5
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
W Versionsnummer auslesen - Regex ist zickig Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben