RegEx werden nicht erkannt

  • Themenstarter Themenstarter Gnarf
  • Beginndatum Beginndatum
G

Gnarf

Gast
Hi.

Ich habe ein kleines Problem.
Ich lese die Zeilen einer Datei ein. Ein paar dieser Zeilen beginnen mit einer Zahl und die möchte ich herausfiltern und ausgeben. Die aktuelle Zeile ist als String gespeichert.

Ich wollte es folgendermaßen machen:
Code:
if (line.startsWith("\\d+.+") {//Hier dann die Ausgabe}

Allerdings wird die Bedingung nie erfüllt. Ich habe schon einige Varianten der RegEx ausprobiert, aber nie ist die Bedingung erfüllt.
Gebe ich die Zahl direkt ein, ist das kein Problem, aber da das bis in die Tausender gehen kann, kann ich ja schlecht alle Zahlen einzeln abfragen.

Sieht jemand, wo mein Fehler liegen kann?
 
Typischer Regex Fehler, den Java Anfänger machen.

Java:
if (line.startsWith("\\\\d+") {//Hier dann die Ausgabe}

\\d bezeichnet in einer Regex eine Zahl. Ein \ ist in Java allerdings ein Steuerzeichen und muss deshalb mit einem \ maskiert werden --> in Java ist \\ für die Regex \
 
Nein, das funktioniert auch nicht.
Hier mal als Beispielt eine Zeile, die ausgeben werden müsste:
Code:
1035	chrY	59099493	59099494	rs17149478	0	+	T	T	C/T	genomic	single	by-cluster,by-frequency,by-1000genomes	0.382245	0.212159	unknown	exact	1		7	1000GENOMES,AFFY,COMPLETE_GENOMICS,HGSV,ILLUMINA,KRIBB_YJKIM,PERLEGEN,	2	T,C,	1319.000000,153.000000,	0.896060,0.103940,	maf-5-some-pop
 
Argh. Schonmal die Javadoc für String.startsWith angeguckt? Tests if this string starts with the specified prefix. --> da kannst du keine Regex nutzen!!!

Außerdem bin ich doch doof und \d in ner Regex reicht. Versuche folgendes:
Java:
...
if (line.matches("\\d.*")) {
...
}
...
 
Hatte in der API nachgeschaut aber aus dem Satz nicht geschlossen, dass keine RegEx gelten. Funktioniert jetzt auch, danke.
 
Tja ... wer die API nicht richtig LESEN kann ... der muss es halt lernen.

Wenn es eine RegEx ist steht in der API IMMER
Code:
String regex

Nur wenn genau DAS da steht ... dann kannst du RegEx verwenden ... ansonsten NICHT !
 
Tja ... wer die API nicht richtig LESEN kann ... der muss es halt lernen.
Das tue ich doch auch. Und durch Fehler lernt man bekanntermaßen.
Mag ja sein dass das bei mir falsch ankommt, aber ich versetehe nicht, warum du deinen Beitrag so vorwurfsvoll von oben herab schreibst. Wäre ja gern mit komplettem Programmiersprachen-Wissen auf die Welt gekommen, das war mir nur leider nicht gegönnt 😛
Aber auch dir danke für den Hinweis.
 

Zurück
Oben