Solución:
Puede utilizar cualquiera de estas 2 variantes:
/^[A-Z]+$/i
/^[A-Za-z]+$/
para que coincida con una cadena de entrada de alfabetos ASCII.
-
[A-Za-z]
coincidirá con todos los alfabetos (tanto en minúsculas como en mayúsculas). -
^
y$
se asegurará de que nada más que estos alfabetos coincidan.
Código:
preg_match('/^[A-Z]+$/i', "abcAbc^Xyz", $m);
var_dump($m);
Producción:
array(0) {
}
Caso de prueba es para el comentario de OP que quiere igualar sólo si hay 1 o más alfabetos presentes en la entrada. Como puede ver en el caso de prueba, las coincidencias fallaron porque hubo ^
en la cadena de entrada abcAbc^Xyz
.
Nota: Tenga en cuenta que la respuesta anterior solo coincide con alfabetos ASCII y no coincide con los caracteres Unicode. Si desea hacer coincidir letras Unicode, use:
/^p{L}+$/u
Aquí, p{L}
coincide con cualquier tipo de letra de cualquier idioma
Si necesita incluir caracteres alfabéticos que no sean ASCII, y si su tipo de expresión regular es compatible con Unicode, entonces
ApL+z
sería la expresión regular correcta.
Algunos motores de expresiones regulares no admiten esta sintaxis Unicode pero permiten la w
taquigrafía alfanumérica para que coincida también con caracteres no ASCII. En ese caso, puede obtener todos los alfabéticos restando dígitos y guiones bajos de w
como esto:
A[^Wd_]+z
A
coincide con el comienzo de la cadena, z
al final de la cadena (^
y $
también coinciden al principio / final de las líneas en algunos lenguajes como Ruby, o si se establecen ciertas opciones de expresiones regulares).
Esto coincidirá con uno o más caracteres alfabéticos:
/^[a-z]+$/
Puede hacer que no distinga entre mayúsculas y minúsculas usando:
/^[a-z]+$/i
o:
/^[a-zA-Z]+$/