"We are back" « oc.at

[SOLVED]Java reg exp Frage

sensei 17.02.2010 - 10:27 1465 6
Posts

sensei

die Küstenwache?
Avatar
Registered: Dec 2000
Location: Bad Schlotterbac..
Posts: 709
Ahoi,

Ich hab einen String input:
" 014 | Person1 || 051 | Person2 || 037 | Person3 || 033 | Person4 |....."

den ich gerne mittels split methode geteilt hätte:
String[] persons = input.split("||");

das funktioniert ja natütlich nicht.

gibts ne Möglichkeit die pipes als quasi normale characters zu kennzeichnen?

tia!
Bearbeitet von sensei am 17.02.2010, 10:54

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12115
Nichtterminalzeichen escapest du (vermutlich auch in Java) mit "\"

Code:
String[] persons = input.split("\|\|");

JC

Vereinsmitglied
Disruptor
Avatar
Registered: Feb 2001
Location: Katratzi
Posts: 9066
In Java also so, wenn ich mich nicht täusche:

Code:
String[] persons = input.split("\\|\\|");

sensei

die Küstenwache?
Avatar
Registered: Dec 2000
Location: Bad Schlotterbac..
Posts: 709
Danke an euch beide!

funktioniert so!

(JC hat die für Java richtig Syntax)

-=Willi=-

The Emperor protects
Avatar
Registered: Aug 2003
Location: ~
Posts: 1624
Zitat von JC
In Java also so, wenn ich mich nicht täusche:

Code:
String[] persons = input.split("\\|\\|");

Kurze Frage: Warum funktioniert "\\|" und "\|" nicht?

Luzandro

Here to stay
Avatar
Registered: Mar 2006
Location: 2482
Posts: 708
Damit du als regulären Ausdruck "\|" erhältst, musst du beim String den Backslash noch einmal escapen, da es sonst als Escape-Sequence des Strings angesehen wird. Sowas wie raw strings gibt es in Java afaik nicht (?)

-=Willi=-

The Emperor protects
Avatar
Registered: Aug 2003
Location: ~
Posts: 1624
Also einmal für Java escapen und das zweite Mal für die RegEx. Alles klar.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz