RegEx Problem

Fohnbit

Top Contributor
Hello,

ich bekomme diesen String:
Code:
settingsCallback({
  "mac":"7C:47:3F:12:7A:AC",
  "ip":"192.168.0.59",
  "gw":"192.168.0.254",
  "sub":"255.255.255.0",
  "MID":"4*4HDMI2.0Matrix",
  "DHCP":"1",
  "EDID1Data":"3010001",
  "EDID2Data":"3010001",
  "EDID3Data":"3010001",
  "EDID4Data":"3010001",
  "SWP1Data":"2",
  "SWP2Data":"0",
  "SWP3Data":"0",
  "SWP4Data":"0"
});

Ich benötige die letzten 4 Werte (SWP1-4Data).
Regex:
("SWP\dData"):("\d")

In Java dann:
Java:
Pattern valueP = Pattern.compile("\\(\"SWP\\wData\"\\)\\:\\(\"\\d\"\\)");

            Matcher valueM = valueP.matcher(content);
            if (valueM.find()) {
                // Crosspoint gefunden
                System.out.println(valueM.group(1));
                System.out.println(valueM.group(2));
            }

Klappt aber nicht in Java ... wo ist mein Fehler?

Danke!
 
Zuletzt bearbeitet von einem Moderator:

dzim

Top Contributor
Dein Regexp klappt bei mir wunderbar (Matcher#find().
http://www.regexplanet.com/advanced/java/index.html -> in das "Regular expression:"-Feld den Regexp eintragen, in "Input 1:" dein JavaScript-Callback von oben. Dann "Test" drücken und schon werden die Matches und Findings angezeigt.
Und das Pattern als Java-String gibt er dir auch noch: "(\"SWP\\dData\"):(\"\\d\")" -> Pattern.compile("(\"SWP\\dData\"):(\"\\d\")");
 

sascha-sphw

Top Contributor
Dein Regexp klappt bei mir wunderbar (Matcher#find().
http://www.regexplanet.com/advanced/java/index.html -> in das "Regular expression:"-Feld den Regexp eintragen, in "Input 1:" dein JavaScript-Callback von oben. Dann "Test" drücken und schon werden die Matches und Findings angezeigt.
Und das Pattern als Java-String gibt er dir auch noch: "(\"SWP\\dData\"):(\"\\d\")" -> Pattern.compile("(\"SWP\\dData\"):(\"\\d\")");

Ich muss meinen RegExp Editor wechseln. :(
 

dzim

Top Contributor
http://www.regexplanet.com/advanced/java/index.html ist gut, um schnell reguläre Ausdrücke zu testen, ob sie mit Java funktionieren.

Wenn man einen Ablaufplan braucht, kann man den hier https://regexper.com/ auch generieren lassen: https://regexper.com/#("SWP\dData"):("\d")
Achtung: Es wird JavaScript-Stil vorausgesetzt!

Und zu guter Letzt noch https://regex101.com/ - zeigt das ganze noch wunderba inline and und erklärt etwas dazu.

Die beiden letzten haben wir kürzlich mal verwendet, um einen abstrusen Ausdruck mit positive look-ahead zu verstehen. Fazit: RegExp ist manchmal zum Hirn zermatern, verdammt mächtig aber dennoch irgendwie "cool". :D

Ich glaub, ich bin ein Nerd... :eek:
 

Fohnbit

Top Contributor
Hallo,

vielen Danke ... klappt :)

Aber bei einem hänge ich nun schon länger:
der Text:
Code:
AT+CMGL="ALL"

+CMGL: 0,"REC READ","+43699102832","","17/09/30,12:33:09+08"
Ist da
+CMGL: 1,"REC READ","+4366043239","","17/09/30,07:49:15+08"
Sie haben am 30.09.2017 um 07:49 einen Anruf von +436603239 versäumt.
3Box +43660303060
+CMGL: 2,"REC READ","+4366043239","","17/09/30,07:54:47+08"
Sie haben am 30.09.2017 um 07:54 einen Anruf von +436604239 versäumt.
3Box +43660303060
+CMGL: 3,"REC READ","+4366043239","","17/09/30,08:00:17+08"
Sie haben am 30.09.2017 um 08:00 einen Anruf von +436604339 versäumt.
3Box +43660303060
+CMGL: 4,"REC READ","+4366043239","","17/09/30,08:00:43+08"
Sie haben am 30.09.2017 um 08:00 einen Anruf von +436604339 versäumt.
3Box +43660303060
+CMGL: 5,"REC READ","+43699102832","","17/09/30,12:36:54+08"
Tesr

OK

Mein Regex:
Code:
(\+CMGL): (\d+),"([^"]+){0,1}","([^"]+){0,1}","([^"]+){0,1}","([^"]+){0,1}"\s\s(.*)

Mein Problem:
Bei den SMS texten sind manchmal 2 Zeilen, manchmal nur eine Zeile.

Beim \s\s(.*) müsste also geprüft, ob es eine weitere Zeile gibt, bevor "\+CMGL" wieder kommt oder ein weiterer Zeilenumbruch
 

Thallius

Top Contributor
Das ist eine CSV Datei. Diese würde ich natürlich auch mit einem CSV Parser parsen und nicht selber mit RegEx irgendwas rumfrickeln. Auch das erste Beispiel hätte ich nicht mit RegEx gemacht. RegEx ist für mich eh immer die letzte Lösung weil sie in der Regel bedeutet, man verwendet einen String für eine Aufgabe für die er nicht gedacht ist.

Gruß

Claus
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C RegEx Problem Java Basics - Anfänger-Themen 4
M Regex Erstellung Problem Java Basics - Anfänger-Themen 2
C Regex-Problem Java Basics - Anfänger-Themen 4
F Switch Case Problem mit Regex lösen? Java Basics - Anfänger-Themen 6
H regex-Problem Java Basics - Anfänger-Themen 2
G regex Verständnis Problem Java Basics - Anfänger-Themen 3
T Regex Problem Java Basics - Anfänger-Themen 4
H Problem mit Regex in Verbindung mit BufferedReader Java Basics - Anfänger-Themen 4
R Regex Problem Java Basics - Anfänger-Themen 3
J Problem mit regex Java Basics - Anfänger-Themen 2
A RegEx Problem mit slash ( / ) Java Basics - Anfänger-Themen 5
StrikeTom Problem mit regex(-anwendung) Java Basics - Anfänger-Themen 10
megachucky regex-Problem ( mit den Klassen Matcher / Pattern) --> XML prüfen Java Basics - Anfänger-Themen 11
G einfaches Regex Problem Java Basics - Anfänger-Themen 4
F regex pattern problem Java Basics - Anfänger-Themen 4
S Regex Pattern Problem Java Basics - Anfänger-Themen 2
S Regex für Dezimalzahl. Problem mit Nachkommastellen Java Basics - Anfänger-Themen 5
K regex problem Java Basics - Anfänger-Themen 5
L Regex Problem Java Basics - Anfänger-Themen 3
D Regex greift nicht richtig Java Basics - Anfänger-Themen 4
B Regex Order unwichtig bei Lookaheads? Java Basics - Anfänger-Themen 7
F RegEx Hilfe Java Basics - Anfänger-Themen 5
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14
B Regex Ausdrücke für Monate Java Basics - Anfänger-Themen 7
W RegEx Java Basics - Anfänger-Themen 4
K REGEX - Rechnungsbetrag wird nicht richtig ausgelesen. Java Basics - Anfänger-Themen 3
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
A Zusammengesetzte Nomen/Straßennamen mit Regex-Ausdrücken trennen Java Basics - Anfänger-Themen 8
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
H Java Regex Aufzählung kontrollieren Java Basics - Anfänger-Themen 3
Nooobi Regex und .matches() geben keine Ausnahme Java Basics - Anfänger-Themen 10
sserio Split() -> Regex Frage. Java Basics - Anfänger-Themen 7
K Wie verneine ich einen Regex? Java Basics - Anfänger-Themen 2
L Hilfe bei RegEx Java Basics - Anfänger-Themen 4
Dimax RegEx Java Basics - Anfänger-Themen 10
P Einfacher regulärer Ausdruck (RegEx) für E-Mail-Adressen Java Basics - Anfänger-Themen 2
O Regex bei ReplaceAll ersetzt Wort und Sonderzeichen nicht. Java Basics - Anfänger-Themen 9
O Text mit Regex trennen und wieder zusammenbauen Java Basics - Anfänger-Themen 5
L Regex issue Java Basics - Anfänger-Themen 4
B Regex Kombination benötigt Java Basics - Anfänger-Themen 5
strohkolben Regex Java Basics - Anfänger-Themen 3
OnDemand Regex oder Split? Java Basics - Anfänger-Themen 5
I String.split regex Frage Java Basics - Anfänger-Themen 2
Dimax RegEx funktionieren nicht Java Basics - Anfänger-Themen 7
M Regex nur Zahlen und Punkt zulassen, Keine Eingabe(Leeres TextFeld) nicht zulassen Java Basics - Anfänger-Themen 6
K substitute mit regex Java Basics - Anfänger-Themen 10
G RegEx Java Basics - Anfänger-Themen 11
M Regex Probleme (mal wieder) Java Basics - Anfänger-Themen 3
M Regex zum Integer.parseInt Java Basics - Anfänger-Themen 4
G Regex Java Basics - Anfänger-Themen 4
M Regex-Ausdruck: Alle Zeichen bis auf ein bestimmtes erlauben (p{L}) Java Basics - Anfänger-Themen 5
M Regex anpassen Java Basics - Anfänger-Themen 19
M Regex für bestimmte Wörter bzw. bestimmte Zeichen erstellen Java Basics - Anfänger-Themen 5
C Positive und negative Zahlen mit Regex extrahieren Java Basics - Anfänger-Themen 8
F RegEx für Email Java Basics - Anfänger-Themen 2
F RegEx "+" nur als Zeichen, nicht als Operator oder Sonstiges Java Basics - Anfänger-Themen 2
FelixN RegEx aus einem String als String-Array zurückgeben Java Basics - Anfänger-Themen 8
FelixN RegEx Erläuterung "ˆ[ˆa-zA-Z]+$" Java Basics - Anfänger-Themen 6
F Regex Hilfe Java Basics - Anfänger-Themen 3
I Regex findet keine Treffer Java Basics - Anfänger-Themen 4
C Regex Java Basics - Anfänger-Themen 2
C Probleme bei Regex Java Basics - Anfänger-Themen 9
B Regex ignorieren von Groß - Kleinschreibung Java Basics - Anfänger-Themen 1
F Regex für Inlineformatierungen Java Basics - Anfänger-Themen 12
W Einfachen, ein beliebiges Zeichen oft erkennenden Regex Parser selber schreiben - wie vorgehen? Java Basics - Anfänger-Themen 12
O Regex Java Basics - Anfänger-Themen 2
F Ist das ein korrekter Regex-Ausdruck? Java Basics - Anfänger-Themen 12
M Zahlenbereich mit RegEx Java Basics - Anfänger-Themen 3
B Hilfe bei Regex - Erstellung Java Basics - Anfänger-Themen 5
D regex Aufbau Frage Java Basics - Anfänger-Themen 4
W RegEx Matcher + Pattern und Emails Java Basics - Anfänger-Themen 8
R Rechenzeichen als regex Java Basics - Anfänger-Themen 10
S Ich verstehe die RegEx Tabelle von Javadoc nicht so ganz Java Basics - Anfänger-Themen 3
C Erste Schritte Regex - Datei einlesen und splitten Java Basics - Anfänger-Themen 4
F Regex Hilfe Java Basics - Anfänger-Themen 14
G String nach Contains/Regex Java Basics - Anfänger-Themen 2
U RegEx alle Kommas bei den Zahlen in Punkt umwandeln Java Basics - Anfänger-Themen 3
K RegEx - Multiple Line Java Basics - Anfänger-Themen 3
S Regex Pattern Java Basics - Anfänger-Themen 3
K Regex: illegal character range Java Basics - Anfänger-Themen 4
F RegEX Hilfe Java Basics - Anfänger-Themen 8
U Regex für kommaseparierte Zahlen Java Basics - Anfänger-Themen 1
K Operatoren Regex für 10er Zahlen Java Basics - Anfänger-Themen 8
V Java Regex richtig parsen Java Basics - Anfänger-Themen 2
E Brauche eine Antwort zum Thema RegEx ( Alternative zur Lösung auch gesucht ) Java Basics - Anfänger-Themen 5
N mein RegEx Java Basics - Anfänger-Themen 2
C Lösung für RegEx in Java gesucht Java Basics - Anfänger-Themen 2
B Java - Reguläre Ausdrücke - RegEx oder Regular Expressions - Eckige Klammern Java Basics - Anfänger-Themen 2
M Regex/matcher Java Basics - Anfänger-Themen 2
T Methoden String.matches() - Regex Java Basics - Anfänger-Themen 2
truesoul Regex für www Java Basics - Anfänger-Themen 0
N Methoden Straßennamen und Hausnummer - RegEx Java Basics - Anfänger-Themen 19
W Erste Schritte Regex negieren Java Basics - Anfänger-Themen 3
W String match mit Wildcard ODER Regex Java Basics - Anfänger-Themen 1
E useDelimiter-Anwednung / Regex Java Basics - Anfänger-Themen 2
C java regex Java Basics - Anfänger-Themen 2
C Regex zum matchen ausserhalb von Tags Java Basics - Anfänger-Themen 3
O Regex zwischenspeichern Java Basics - Anfänger-Themen 6
O Regex Java Basics - Anfänger-Themen 5
R Einfacher Regex Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben