Expresión regular para que coincida solo con caracteres alfabéticos

Me preguntaba si podría obtener una expresión regular que coincida con una cadena que solo tenga caracteres alpafáticos, y solo eso

Puede usar cualquiera de estas 2 variantes:

 /^[AZ]+$/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úscula como en mayúscula).
  • ^ y $ se asegurarán de que solo se combinen estos alfabetos.

Código:

 preg_match('/^[AZ]+$/i', "abcAbc^Xyz", $m); var_dump($m); 

Salida:

 array(0) { } 

El caso de prueba es para el comentario de OP que quiere hacer coincidir solo si hay 1 o más alfabetos presentes en la entrada. Como puede ver en el caso de prueba, esa coincidencia falló porque había ^ en la cadena de entrada abcAbc^Xyz .

Nota: Tenga en cuenta que la respuesta anterior solo coincide con los alfabetos ASCII y no coincide con los caracteres Unicode. Si quiere unir letras unicode, use:

 /^\p{L}+$/u 

Si necesita incluir caracteres alfabéticos no ASCII, y si su sabor de expresiones regulares admite Unicode, entonces

 \A\pL+\z 

sería la expresión regular correcta.

Algunos motores de expresiones regulares no son compatibles con esta syntax Unicode, pero permiten que la \w ta letra alfanumérica \w también coincida con caracteres que no sean ASCII. En ese caso, puede obtener todos los alfabéticos restando dígitos y guiones bajos de \w como este:

 \A[^\W\d_]+\z 

\A coincidencia al comienzo de la cadena, \z al final de la cadena ( ^ y $ también coinciden al inicio / final de las líneas en algunos idiomas como Ruby, o si se establecen ciertas opciones de expresiones regulares).

Esto coincidirá con uno o más caracteres alfabéticos:

 /^[az]+$/ 

Puede hacerlo insensible a mayúsculas y minúsculas utilizando:

 /^[az]+$/i 

o:

 /^[a-zA-Z]+$/ 

En Ruby y otros lenguajes que admiten clases de caracteres POSIX en expresiones de corchetes, puede hacer simplemente:

 /\A[[:alpha:]]+\z/i 

Eso coincidirá con alfa-chars en todos los lenguajes de alfabeto Unicode. Pan comido.

Más información: http://en.wikipedia.org/wiki/Regular_expression#Character_classes http://ruby-doc.org/core-2.0/Regexp.html

[a-zA-Z] debería hacer eso bien.

Puedes hacer referencia a la hoja de trucos .