erik992 ha scritto:
Pattern pattern = Pattern.compile("(\\:\\d{1,5})$");
Potreste darmi un consiglio o una mano?
Nelle regex le parentesi ( ) descrivono un "gruppo catturante", non esattamente la parentesi "(" e la parentesi ")". Quindi se non devi estrarre il contenuto di quel gruppo, non servirebbero.
Per il ":" invece non serve fare l'escape, perché non è un carattere "speciale". Quindi \: ("\\:" in stringa) oppure : è indifferente
Inoltre: vuoi fare il match completo (con matche
s() ) ... oppure un match "parziale" (con un find() )? Perché con quella regex il match completo non lo fai di certo nei confronti di stringhe come "erttt:8712"!
In sostanza:
Pattern pattern = Pattern.compile(":\\d{1,5}$");
System.out.println(pattern.matcher("erttt:8712").find()); // true
System.out.println(pattern.matcher("Test141d:12121").find()); // true
System.out.println(pattern.matcher("hello:123456").find()); // false
System.out.println(pattern.matcher("hello-1234").find()); // false