Matches

B

benoetigeHilfe

Gast
Hallo miteinander.

Ein wirklich kleines Problem was ich habe.

Ich lese aus einer Datei und möchte nur eine bestimmte Zeile daraus haben:

String ist : diffuseColor 0.00000 0.00000 0.00000

Wobei die Zahlen unterschiedlich sind.

Meine Bedingung ist :
Java:
if(string.matches("[diffuseColor ]*\\d*[.]\\d*[ ]\\d*[.]\\d*[ ]\\d*[.]\\d"))
ich finde damit auch die Zeile nur ich finde auch jede Zeile mit z.B 0.00000 0.00000 0.00000

Es darf nur diffuseColor 0.00000 0.00000 0.00000 ( Zahlen unterschiedlich ) sein.
Wie löse ich das?

Mfg
 

eRaaaa

Top Contributor
Jetzt ohne großartig mit Regex rum zumachen(das überlasse ich anderen *g*), aber reicht dir da nicht einfach ein
Java:
if(string.startsWith("diffuseColor"))

???:L

Oder gibt`s auch Zeilen die mit diffuseColor beginnen und dann aber diese drei Zahlen nicht besitzen, bzw. anders aussehen?
 

diggaa1984

Top Contributor
bin für

Java:
if(string.matches("^\\s*diffuseColor \\d+[.]\\d+ \\d+[.]\\d+ \\d+[.]\\d+"))

da kannst im zweifelsfall noch leerzeichen am anfang der zeile haben .. wenn nicht schmeiss einfach das \\s* raus :) .. das Hütchen da zeigt an, dass der String mit dem folgenden beginnen muss
 
Zuletzt bearbeitet:
B

benoetigeHilfe

Gast
eRaaaa was soll man dazu sagen.
Hätte mir mal die Methoden anschauen sollen.
Danke
 

faetzminator

Gesperrter Benutzer
@diggaa1984:
Er muss nicht nur mit ihm beginnen, sondern auch mit ihm aufhören - auch wenn am Schluss das [c]$[/c] "fehlt". Grund ist, dass matches() natürlich auf den gesamten String prüft - im Gegensatz zu find(), in welchem man [c]^[/c] (und [c]$[/c]) verwenden müsste.
@TO, @ARadauer: [c][...][/c] stehen für Gruppierungen, nicht Folgen ;) D.h. das zu suchende Wort kann ganz einfach normal notiert (ohne Klammern o.ä.) werden.
 

diggaa1984

Top Contributor
@diggaa1984:
Er muss nicht nur mit ihm beginnen, sondern auch mit ihm aufhören - auch wenn am Schluss das [c]$[/c] "fehlt"

jut das stimmt natürlich, ich glaube das vergess ich gerne mal :)

bauen wir also sowas draus, wenn matches da eh schon implizit dei gesamte Länge prüft:
Java:
"\\s*diffuseColor( \\d+[.]\\d+){3}"
:)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Nooobi Regex und .matches() geben keine Ausnahme Java Basics - Anfänger-Themen 10
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
O Ich habe einen String und soll mit matches schauen, ob ein Buchstabe zu einer geraden ANzahl im String vorkommt, wie soll das gehen? Java Basics - Anfänger-Themen 7
O Ich ahbe einen char und diesen soll ich bei .matches prüfen, also ob der char in meiner Zeichenkette vorhanden ist, wie mache ich das? Java Basics - Anfänger-Themen 9
D ergebnis.matches("[1-9]?[0-9].[0-9][0-9]?") ein teil eines größeren Strings Java Basics - Anfänger-Themen 12
M Schlüsselworte Unterschied: String.matches und Pattern.compile Java Basics - Anfänger-Themen 2
J .matches Java Basics - Anfänger-Themen 4
L String überprüfen mit .equals .contains oder .matches? Java Basics - Anfänger-Themen 1
T Kommatar in der matches Methode Java Basics - Anfänger-Themen 2
T Methoden String.matches() - Regex Java Basics - Anfänger-Themen 2
D matches() Java Basics - Anfänger-Themen 6
G Probleme mit Zahlenfilter bei Texteingabe mithilfe String matches Java Basics - Anfänger-Themen 4
P File matches nur für Ordnername von 00..99 Java Basics - Anfänger-Themen 13
C Reguläre Ausdrücke: string.matches() und gefangene Gruppen Java Basics - Anfänger-Themen 12
S Regex - alle Matches ausgeben? Java Basics - Anfänger-Themen 2
K String.matches Uhrzeit Java Basics - Anfänger-Themen 2
S Pattern.matches mit Ignore Case Java Basics - Anfänger-Themen 2
R String.matches Java Basics - Anfänger-Themen 6
A Pattern.matches(); Java Basics - Anfänger-Themen 14
K Prob mit java.util.regex.matches-String wird nicht erkannt? Java Basics - Anfänger-Themen 9
B Pattern matches (String auf - prüfen) Java Basics - Anfänger-Themen 2
G Ansätze für Matches Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben