Kleines Regex-Problem

Verjigorm

Top Contributor
Hallo,

und zwar frage ich mich wieso bei s2 das falsche Ergebnis ausgegeben wird und wie ich meinen Regex gestalten muß, damit immer "bDatum" rauskommt.

Ich stehe irgendwie auf dem Schlauch, für mich sieht das korrekt aus :rtfm::autsch::eek:

Java:
import java.util.regex.Matcher;
import java.util.regex.Pattern;



public class MyRegex {

	private static final Pattern p = Pattern.compile(".*getSystemPara\\(.*,\\s*\"(.*)\"\\s*\\).*");
	
	private static final String s1 = "showDate = systemSettings.getSystemPara(MODULE_ID, \"bDatum\");";
	private static final String s2 = "showDate = systemSettings.getSystemPara(MODULE_ID, \"bDatum\").equals(\"1\");";
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		Matcher m = p.matcher(s1);	
		System.out.println(m.replaceAll("$1"));
		
		m = p.matcher(s2);	
		System.out.println(m.replaceAll("$1"));
	}

}

Output:

bDatum <--- wie erwartet
bDatum").equals("1 <--- verstehe ich nicht

Vielen dank im voraus!
 

Michael...

Top Contributor
Stickwort: gierigige bzw. greedy Quantoren
Pattern p = Pattern.compile(".*getSystemPara\\(.*,\\s*\"(.*?)\"\\s*\\).*");


Je nach zu durchsuchendem Text könnte man das Pattern sicherlich noch vereinfachen:
Java:
Pattern p = Pattern.compile("\\(.*?\"(.*?)\".*\\)");

Ist das mit dem replace so gewollt oder soll einfach nur der Umfang von bDatum extrahiert werden.
 

Verjigorm

Top Contributor
Hallo,
danke schonmal soweit.

1) hm greedy verwundert mich jetzt etwas, dann habe ich wohl etwas bei Regex nicht richtig verstanden, muß ich mich nochmal belesen :rtfm:

2) 'getSystemPara' etc. muss im Pattern drin bleiben, da ich damit ALLES durchsuchen möchte :)

3) ich wollte im Endeffekt einfach nur 'bDatum' haben und wusste nicht, wie ich es sonst rausziehen sollte. Dies ist doch gruppe1/$1 oder nicht? wie geht das sonst?

mfg Verjigorm
 

Michael...

Top Contributor
Üblicherweise in der Art:
Java:
Pattern p = Pattern.compile("getSystemPara\\(.*,\\s*\"(.*?)\"\\s*\\)");

String s1 = "showDate = systemSettings.getSystemPara(MODULE_ID, \"bDatum\");";
String s2 = "showDate = systemSettings.getSystemPara(MODULE_ID, \"bDatum\").equals(\"1\");";

Matcher m = p.matcher(s1);
if (m.find())
	System.out.println(m.group(1));

m = p.matcher(s2);
if (m.find())
	System.out.println(m.group(1));
Zumal man oft bei nicht gefundenem Pattern eventuell darauf reagieren oder eine Benutzerinfo ausgeben lassen will.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M kleines KI Programm Idee Allgemeine Java-Themen 7
S Unerwarteter Output (kleines Raetsel) Allgemeine Java-Themen 6
G Kleines Projekt Allgemeine Java-Themen 2
I Methoden Schnelle Hilfe benötigt - Kleines Video/Slideshow aus mehreren Bildern erstellen Allgemeine Java-Themen 3
N Kleines GUI/Sortier Projekt für die Uni Allgemeine Java-Themen 11
I kleines Wochenlohn-Programm schreiben Allgemeine Java-Themen 5
F Kleines Problem mit exec Allgemeine Java-Themen 14
C Architekturvorschläge für kleines Projekt Allgemeine Java-Themen 2
S wiedermal ein kleines Problem mit BigDecimal Allgemeine Java-Themen 5
R Kleines Ratespiel Allgemeine Java-Themen 14
N Kleines nicht java Problem Allgemeine Java-Themen 7
F kleines regexp Problem. Allgemeine Java-Themen 3
_SeiA_ Hilfe Kleines Java Programm schreiben. Summen. Allgemeine Java-Themen 3
G von großem Panel auf ein kleines Panel mappen Allgemeine Java-Themen 6
S kleines File problem Allgemeine Java-Themen 13
M kleines prob mit JInternalFrame Allgemeine Java-Themen 5
J Kleines Tool in Java erstellen? Allgemeine Java-Themen 20
B Lizenz und kleines Programm. Allgemeine Java-Themen 3
B kleines modales transparents Fenster ohne rahmen und buttons Allgemeine Java-Themen 15
P Hab ein kleines Problem mit fehlenden Pointern. Allgemeine Java-Themen 4
S Kleines Eclipse Problem, große Wirkung Allgemeine Java-Themen 7
P Habe ein kleines Problem Allgemeine Java-Themen 2
G mit Pattern strings filtern ein kleines problemchen ;) Allgemeine Java-Themen 2
W Kleines Applet in Standard Java Applikation umwandeln Allgemeine Java-Themen 3
S kleines Konstruktorproblem Allgemeine Java-Themen 3
S kleines Spielchen proggen Allgemeine Java-Themen 10
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
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
GilbertGrape Regex-Problem Allgemeine Java-Themen 2
W Denkblockade RegEx Allgemeine Java-Themen 2
S eigene regEx schreiben Allgemeine Java-Themen 4
C Regex expandieren Allgemeine Java-Themen 6
C Regex Überschniedung von Ausdrücken Allgemeine Java-Themen 16
reibi RegEX - Teilstring Allgemeine Java-Themen 6
R Java-RegEx terminiert nicht Allgemeine Java-Themen 3
M Regex: Ich stehe auf dem Schlauch Allgemeine Java-Themen 2
B Regex "Problem" Allgemeine Java-Themen 4
B RegEx: (Um-)formulieren eines Pattern zur Identifizierung komplexer URLs Allgemeine Java-Themen 7
P RegEx mit HTML Parser für Java möglich? Allgemeine Java-Themen 10
J Regex: Fertige URLS aus Javascript Allgemeine Java-Themen 3
N Java regex Allgemeine Java-Themen 5
K Regex JSON Allgemeine Java-Themen 3
J RegEx Ausdruck Allgemeine Java-Themen 2
J Regex: URLS aus CSS Allgemeine Java-Themen 2
G RegEx- Ausdruck Allgemeine Java-Themen 4
G RegEx kein Unterstrich Allgemeine Java-Themen 2
A Text via RegEx durchsuchen und teile ersetzten Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben