Regular Expressions

Status
Nicht offen für weitere Antworten.

js-mueller

Mitglied
Hi, es geht bei meinem Problem um regular expressions und Scanner

So und zwar hab ich folgenden String

Code:
String test = "Vorm testSuper test

nachm test";

Und dann erstelle ich so den scanner

Code:
Scanner scanner = new Scanner(this.rMSK_maskePuffer).useDelimiter("\\s*");
        scanner.next();
    	test = scanner.next();

So es funktioniert alles in test ist Super test gespeichert, aber ich weiss nicht wieso.

1. Frage woher weiss das Programm das er mir nur den Text zwischen den beiden wiedergeben soll? Ich hab doch in dem demeliter nur \\s*" geschrieben und nicht \\s*"
Aber der 2. fall funktioniert nicht wie ich will.

2. Frage wieso muss ich scanner.next(9 aufrufen bevor ich scanner.next() in die Variable speicher?
Wenn ichs nicht mache wird alles vor dem ersten in test geschrieben

Ich hoffe ihr könnt mir bei meinem "Problem" helfe, gehte igentlich nur ums erklären. Achso ich hab da sjetzt net stupide ausm Buch abgeschrieben, bin schon den ganzen tag am probieren gewesne und irgendwie hats funktioniert aber ich möcht gern wissen wieso um spätere Probleme zu vermeiden.

ps: test wurde vorher mit String test definiert.
 
Hi,

ich kann nicht erkennen, wo das Problem liegt.
Ich habe mir jetzt mal folgendes TestCoding zusammengestrickt:

Code:
		String test = "Vorm testSuper test	 nachm test";
		Scanner scanner = new Scanner(test).useDelimiter("\\s*");
		
		while(scanner.hasNext()) {
			System.out.println(scanner.next());
		}
		scanner.close();

Und bei mir sieht die Ausgabe wie erwartet aus:
Code:
Vorm test
Super test	
nachm test


In Deinem Coding übergibst Du aber auch nicht den String an den Scanner sondern irgendeinen Buffer
der nicht weiter erklärt ist. Vielleicht gibt der Rest Deines Codings ja Aufschluß über Dein Problem?

Schau doch noch mal nach, ob Du auch alle relevanten Stellen gepostet hast.

Gruß
Stephan
 
Naja ich hab ja geschrieben das alles so funktioniert wie es soll, aber ich weiss nicht warum es funktioniert, weil ich der meinung bin, dass das pattern nicht logisch ist.
Irgendwie erschließt sich mit der sinn nicht wieso <!-- MSk... :>\\s* funktioniert ich bin der meinung es müsste <!-- ... ->\\s*<!-- ... -> sein. "..." Dient jetzt nur als platzhalter und soll nicht wirklich so im pattern stehn.
 
Der scanner ZERLEGT doch die Eingabe an gewissen "Punkten", der sucht dir keine "Bereiche" aus oder sowas....
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben