2016-10-20 9 views
0

Ich möchte für meinen Code die folgende Zeichenfolge Muster übereinstimmen.Java RegexMuster passende

630512-07-5847

Pattern p = Pattern.compile("(\\d{6,6})-(\\d{2,2})-(\\d{4,4})"); 

Ich habe den Code oben versucht jedoch, wenn es mehr Zahl wie „630512312-07-5847“, es hat: der String-Wert wird wie unten festgelegt noch return true

Antwort

2

versuchen

^\\d{6}-\\d{2}-\\d{4}$ 

Dies wird sicherstellen, dass die, wenn das Spiel beginnt und mit dem gesamten String zu beenden,

so

  • 630512-07-5847 - OK
  • 630512-07-58472 - NICHT OK
  • 1630512-07-5847 - NICHT OK
+0

Vielen Dank, Ihre Methode funktioniert jedoch, wenn i Matcher.find verwenden() zweimal, es mir zwei verschiedene Ergebnisse zurück. – hiboss

+0

zum Beispiel: System.out.printin (m.find()); Rückgabe m.find(); – hiboss

+0

Der erste 'find' wird' true' zurückkehren, kehrt die zweite 'false' –

1

Sie tatsächlich ausprobiert?

public class Test { 
    public static void main(String[] args) { 
     System.out.println("630512312-07-5847".matches("(\\d{6,6})-(\\d{2,2})-(\\d{4,4})")); 
    } 
} 

das Ergebnis ist falsch, schlechte Frage

+0

Sie antworten funktioniert auch gut. Ich verwende jedoch die Pattern- und Matcher-Bibliothek für meine String-Übereinstimmung. wusste nicht, dass eine solche Methode ohne die Bibliothek funktioniert – hiboss