Regex Verständnisfrage

T

Tobias Köhler

Guten morgen.

Habe mich eben mal mit Regex beschäftigt und habe jetzt eine Frage. Wenn man zum Beispiel nach einer Klammer sucht, schreibt man ja \(, damit die Klammer gesucht wird und nicht eine Gruppe eingeleitet wird. Soweit ja kein Problem.

Nun habe ich mir vorgenommen, in Java ein AVS zu schreiben. Mein Regex für eine Email lautet:
Code:
^[\w]+[\-\._\w]*@[\w]+[\-\._\w]*\.[\w]{2,3}

Dies hab ich mir per Regex-Tester für Eclipse erarbeitet. Da findet er dann auch was.

NUN kommt das Problem;)
Wenn ich dieses Regex in Java einsetze, will er das nicht annehmen. Sagt mir dass dies fehlerhaft ist. In meinem Java Code geht es nur so:
Code:
^[\\w]+[\\-\\._\\w]*@[\\w]+[\\-\\._\\w]*\\.[\\w]{2,3}

Also jeweils 2 Backslashes. Dann findet er im Programm auch später die Emails, die ich eingebe.
Aber wenn ich dies wieder in den Regex-Tester kopiere, findet er nix.
Also meine Frage: Wieso?

Hoffe ihr könnt mir helfen
LG Tobi
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

ich denke mal, dass es daran liegt, dass man in Java keine einzelnen "\" eingeben kann. Java erkennt "\\" als "\".

MFG

zEriX
 
Hallo,

mit \ leitet man in einem String in Java ein Sonderzeichen ein. Sowie \n für linefeed und \r carriage return, \" -> ". Wenn du selbst einen \ benutzen willst musst du ihn mit einem zusätzlichen \ Escapen also \\. Gibst du "\\" auf der Konsole aus siehst du \.
Analog bei \\\\ -> \\ etc

Gruß Tom
 
Zurück