regulares - Regex para unir solo letras
matches java ejemplo (15)
¿Cómo puedo escribir una expresión regular que solo coincida con letras?
Dependiendo de su significado de "carácter":
[A-Za-z]
- todas las letras (mayúsculas y minúsculas)
[^0-9]
- todos los caracteres sin dígitos
Java:
String s= "abcdef";
if(s.matches("[a-zA-Z]+")){
System.out.println("string only contains letters");
}
La expresión regular que pocas personas han escrito como "/ ^ [a-zA-Z] $ / i" no es correcta porque la última vez que mencionaron / i, que es para mayúsculas y minúsculas, volverá después de la primera comparación. En lugar de /, solo uso / g, que es global, y tampoco tiene ninguna necesidad de poner ^ $ para comenzar y terminar.
/[a-zA-Z]+/g
- [a-z _] + coincide con un solo carácter presente en la lista a continuación
- Cuantificador: + Entre uno e ilimitado, tantas veces como sea posible, devolviendo según sea necesario
- az un solo carácter en el rango entre a y z (distingue entre mayúsculas y minúsculas)
- AZ un solo carácter en el rango entre A y Z (distingue entre mayúsculas y minúsculas)
- Modificador g : global. Todos los partidos (no volver en el primer partido)
La opción más cercana disponible es
[/u/l]+
que coincide con una secuencia de letras mayúsculas y minúsculas. Sin embargo, no es compatible con todos los editores / idiomas, por lo que probablemente sea más seguro de usar
[a-zA-Z]+
como sugieren otros usuarios
Para PHP, lo siguiente funcionará bien
''/^[a-zA-Z]+$/''
Puede probar esta expresión regular: [^/W/d_]
o [a-zA-Z]
.
Si te refieres a las letras en cualquier codificación de caracteres, entonces un buen enfoque podría ser eliminar las no letras como espacios, dígitos /d
, y otros caracteres especiales como:
[!@#/$%/^&/*/(/)/[/]:;''",/. ...more special chars... ]
O use la negación de la negación anterior para describir directamente cualquier letra:
/S /D and [^ ..special chars..]
Pros:
- Funciona con todos los sabores regex.
- Fácil de escribir, a veces ahorra mucho tiempo.
Contras:
- Largo, a veces no es perfecto, pero la codificación de caracteres puede romperse también.
Solo usa /w
o [:alpha:]
. Es una secuencia de escape que coincide solo con símbolos que pueden aparecer en palabras.
Usar grupos de personajes
/D
Coincide con cualquier carácter excepto los dígitos 0-9
^/D+$
Ver ejemplo here
Use un juego de caracteres: [a-zA-Z]
coincide con una letra de la A a la Z en minúsculas y mayúsculas. [a-zA-Z]+
coincide con una o más letras y ^[a-zA-Z]+$
solo coincide con cadenas que constan de una o más letras ( ^
y $
marcan el principio y el final de una cadena, respectivamente).
Si desea hacer coincidir otras letras distintas de la A a la Z, puede agregarlas al conjunto de caracteres: [a-zA-ZäöüßÄÖÜ]
. O usa clases de caracteres predefinidas como la clase de propiedad de caracteres Unicode /p{L}
que describe los caracteres Unicode que son letras.
Usted usaría
/[a-z]/gi
[] - comprueba si hay caracteres entre las entradas dadas
az --- cubre todo el alfabeto
g ----- globalmente a lo largo de toda la cadena
i ----- obteniendo mayúsculas y minúsculas
patrón = / [a-zA-Z] /
pone "[a-zA-Z]: # {pattern.match (" mine blossom ")}" OK
pone "[a-zA-Z]: # {pattern.match (" 456 ")}"
pone "[a-zA-Z]: # {pattern.match (" ")}"
pone "[a-zA-Z]: # {pattern.match (" # $% ^ & * ")}"
pone "[a-zA-Z]: # {pattern.match (" # $% ^ & * A ")}" OK
/p{L}
coincide con cualquier cosa que sea una letra Unicode si estás interesado en alfabetos más allá del latino
/[a-zA-Z]+/
Ejemplo super simple. Las expresiones regulares son extremadamente fáciles de encontrar en línea.
Pattern pattern = Pattern.compile("^[a-zA-Z]+$");
if (pattern.matcher("a").find()) {
...do something ......
}