L
LatoGT
Gast
Moin,
ich verstehe das Ergebnis meines Javacodes nicht. Anhand von regulären Ausdrücken möchte ich ein Wort erkennen lassen: QA777. Das Ergebniss ist immer FALSE. Weshalb?
Pattern:
^Q = springt an den String-/Zeilenanfang wo Q steht
[^U] = dem Q darf alles folgen außer U
(\\d+\\.) = darauf folgt eine Ziffernfolge, die min. 1 Zeichen hat. Schließlich folgt ein Punkt
Warum muss vor \d noch ein \ stehen? Die gleiche Frage stellt sich zu ., wobei dort gleich \\ stehen.
Danke für die Hilfe!
ich verstehe das Ergebnis meines Javacodes nicht. Anhand von regulären Ausdrücken möchte ich ein Wort erkennen lassen: QA777. Das Ergebniss ist immer FALSE. Weshalb?
Pattern:
^Q = springt an den String-/Zeilenanfang wo Q steht
[^U] = dem Q darf alles folgen außer U
(\\d+\\.) = darauf folgt eine Ziffernfolge, die min. 1 Zeichen hat. Schließlich folgt ein Punkt
Warum muss vor \d noch ein \ stehen? Die gleiche Frage stellt sich zu ., wobei dort gleich \\ stehen.
Danke für die Hilfe!
Code:
import java.util.regex.*;
public class RE {
public static void main(String[] args) {
String pattern = "^Q[^U](\\d+\\.)";
String input = "QA777. ist der nächste Flug. Er ist pünktlich.";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(input);
boolean found = m.matches();
System.out.println(pattern + (found ? " passt auf " : " passt nicht auf ") + input);
}
}