import java.util.regex.Pattern;
class HowEasy {
public boolean matches(String regex) {
System.out.println(Pattern.matches(regex, "abcABC "));
return Pattern.matches(regex, "abcABC");
}
public static void main(String[] args) {
HowEasy words = new HowEasy();
words.matches("[a-zA-Z]");
}
}
La salida es False. ¿Dónde estoy equivocado? También quiero verificar si una palabra contiene solo letras y puede o no puede terminar con un solo período. ¿Cuál es la expresión regular para eso?¿Cómo hacer coincidir letras solo con java regex, método de coincidencias?
i.e "abc" "abc." es válido pero "abc .." no es válido.
Puedo usar el método indexOf()
para resolverlo, pero quiero saber si es posible usar una sola expresión regular.
Usted tiene razón sobre [a-zA-Z] + ahora coincide sólo con letras. En realidad, la segunda expresión debería ser "abc \\.?" (en eclipse) –
'en eclipse' no es el punto. Puede ingresar un patrón desde un archivo, desde la línea de comandos, desde un JTextField, opuesto a una constante literal en el código fuente, eso hace la diferencia. Lo mencioné mientras editaba ('mask the backslash'). Gracias de todos modos. –
Tenga en cuenta que '\ w' captura también guiones bajos y números, es decir,' [a-zA-Z_0-9] 'como se define en [Patrón] (https://docs.oracle.com/javase/7/docs/api /java/util/regex/Pattern.html) – reallynice