Regex anpassen

Mika34

Bekanntes Mitglied
Hi nochmal,

Ich bin gerade dabei einen Regex zu erstellen und habe gemerkt, dass es nicht so wirklich klappt. Irgendwie verstehe ich den Aufbau noch nicht so ganz.
Code:
(^delete track$)
Dieser Regex nimmt nur einen String an, welcher "delete track" ist. Möchte ich nun, dass nach dem "track" ein Leerzeichen kommt und dann positive Integer-Werte kommt, wie stelle ich das dann an?
Ich habe an:
Code:
(^delete track$)(\s)([0-9]+)
gedacht, jedoch funktioniert dies nicht. Könnte mir einer erklären, wie man gezielt solche Regex baut, bei denen ein Teil fest definiert ist und der Rest in Maßen frei wählbar ist.

Darüber wäre ich tierisch dankbar!
 

Mika34

Bekanntes Mitglied
Denn in Eclipse passt er mir den Regex automatisch so an:
Code:
(^delete track)(\\s)([0-9]+)$ //mit \\ statt \ bei dem s
und dann entspricht dies nicht mehr dem Regex, zumindest im Regex Tester
 

mihe7

Top Contributor
:) In Java hat der Backslash in Strings die Funktion, nachfolgenden Zeichen eine andere Bedeutung zu geben. So ist es möglich in einem String z. B. Return-Zeichen einzufügen "\r", einen Tabulator ("\t") oder ein beliebiges Unicode-Zeichen "\u0123".

Deswegen muss der Backslash nochmal wiederholt werden, um im String einen Backslash zu erhalten.

Kurz: beide haben Recht aber in Java musst Du die Form mit \\ nehmen.
 

Mika34

Bekanntes Mitglied
Dann ergibt das Sinn wieso im Tester dort Java-Script ausgewählt ist, ist es dort dann mit einem Backslash?
Ich nehme es mal an, oder?
 

Mika34

Bekanntes Mitglied
Ich komme gerade echt an meine Grenzen. Wie soll man solch einen Regex angeben: Lowercase Letter, Modifier Letter, Other Letter, Titlecase Letter, Uppercase Letter und die Ziffern 0-9 aus dem Unicode.
Konkateniert man die Regex dann miteinander oder macht man hier Fallunterscheidungen?
 

mihe7

Top Contributor
Dann ergibt das Sinn wieso im Tester dort Java-Script ausgewählt ist, ist es dort dann mit einem Backslash?
JavaScript kennt reguläre Ausdrücke als Literal, d. h. als Teil der Sprache. Notiert wird dieses mit zwei Schrägstrichen, ggf. unmittelbar von Flags gefolgt: /<regex>/<flags>. Dabei wird regex nicht-escaped angegeben.

/\s/.test(' ') liefert z. B. true.

Es gibt aber auch in JavaScript die Möglichkeit, ein RegExp-Objekt zu erzeugen, das im Konstruktor einen regulären Ausdruck als String entgegennimmt. In einem String-Literal müsste man escapen: new RegExp("\\s").test(' ')

EDIT: zu früh abgeschickt...
Wie soll man solch einen Regex angeben: Lowercase Letter, Modifier Letter, Other Letter, Titlecase Letter, Uppercase Letter und die Ziffern 0-9 aus dem Unicode.
Beispiel: [\p{Lu}\p{Ll}] dürfte alle Unicode-Zeichen aus den Kategorien Uppercase und Lowercase Letter matchen.
 

Mika34

Bekanntes Mitglied
Das erklärt so einiges, aber da frage ich mich: DAs sieht sehr ähnlich aus zu der Vereinigung von Wörtern und formalen Sprachen.
Wenn ich nun [\p{Lu}\p{Ll}] U W[\p{Lu}\p{Ll}] haben möchte, also dass das W immer nur in konkateniert mit [\p{Lu}\p{Ll}] vorkommen kann. Also wenn das nur das W da steht, soll es nicht erkannt werden, aber wenn bspw. W321321fdfd oder WW oder WE da steht, dann soll es erkannt werden.
Gibt es bei den Regex auch eine ähnliche Operation wie die Vereinigung von Mengen U oder muss man hier dann über eine Fallunterscheidung gehen?
 

mihe7

Top Contributor
In eckige Klammern kommen Zeichenklassen und ja, das ist die Vereinigung von Zeichenklassen.

also dass das W immer nur in konkateniert mit [\p{Lu}\p{Ll}] vorkommen kann
Dann schreibst Du einfach "W[\\p{Lu}\\p{Ll}]" - wobei das nur zwei Buchstaben umfasst. Das erste Zeichen ein W, das zweite eben aus der vereinigten Zeichenklasse. Sollen mehrere Zeichen aus der Zeichenklasse folgen, schreibst Du am Ende noch ein "+".
 

Mika34

Bekanntes Mitglied
Code:
"(^create engine)(\\s)[\\p{Lu}\\p{Ll}]+(\\s)[\\p{Lu}\\p{Ll}]+(\\s)([0-9]+)(\\s)(true|false)(\\s)(true|false)$";
Ich habe nun diesen Regex jedoch schlägt er im Tester gut aus, jedoch in Java reagiert er darauf gar nicht, hat jemand eine Idee?
 

Mika34

Bekanntes Mitglied
Oh, aber mit
Code:
^(create engine)(\\s)[\\p{Lu}\\p{Ll}]+(\\s)[\\p{Lu}\\p{Ll}]+(\\s)([0-9]+)(\\s)(true|false)(\\s)(true|false)$
geht es immer noch nicht, obwohl es im Tester geht. Irgendwo ist doch hier der Haken
 

Mika34

Bekanntes Mitglied
Mit ein weniger Spielerei hat es nun geklappt. Ist es nun auch möglich bei dem UTF-8 String Zahlen auch zu erlauben also eine Vereinigung von UTF-8 und ganzzahligen Zahlen
 

Mika34

Bekanntes Mitglied
Ich verstehe es nicht. Ich meinte, dass das [\\p{Lu}\\p{Ll}]+ U mit ganzzahligen Zahlen möglich ist oder verstehe ich nicht was du meinst
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
C RegEx Problem Java Basics - Anfänger-Themen 4
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 Erstellung Problem Java Basics - Anfänger-Themen 2
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
C Regex-Problem Java Basics - Anfänger-Themen 4
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 Switch Case Problem mit Regex lösen? Java Basics - Anfänger-Themen 6
H regex-Problem 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 Problem Java Basics - Anfänger-Themen 8
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
V RegEx Java Basics - Anfänger-Themen 15
HoloYoitsu Datentypen replaceAll() mit regex? Java Basics - Anfänger-Themen 5
G regex Verständnis Problem Java Basics - Anfänger-Themen 3
G verwendung von regex Java Basics - Anfänger-Themen 3
X Regex splitten Java Basics - Anfänger-Themen 5
T Regex Problem Java Basics - Anfänger-Themen 4
B String nach regex überprüfen Java Basics - Anfänger-Themen 6
J Regex Ausdrücke im Array - Wieso werden sie nicht erkannt? Java Basics - Anfänger-Themen 4
N Regex Java Basics - Anfänger-Themen 4
F String.replaceAll() funktioniert nicht richtig oder habe ich den falschen Regex?? Java Basics - Anfänger-Themen 3
J Regex mit Return Java Basics - Anfänger-Themen 3
I Rechenoperatoren mit Regex splitten Java Basics - Anfänger-Themen 12
F Methoden replaceAll (regex) HTML Java Basics - Anfänger-Themen 3
H Problem mit Regex in Verbindung mit BufferedReader Java Basics - Anfänger-Themen 4
A Hilfe mit RegEx Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben