Necesito determinar si una cadena contiene dos o más caracteres alfa consecutivos. Dos o más [a-zA-Z]
uno al lado del otro. Ejemplo:
"ab" -> valid
"a1" -> invalid
"a b" -> invalid
"a"-> invalid
"a ab" -> valid
"11" -> invalid
Respuestas:
[a-zA-Z] {2,} no funciona para dos o más caracteres consecutivos idénticos. Para hacer eso, debes capturar cualquier personaje y luego repetir la captura así:
(.) \ 1
El paréntesis captura el. que representa cualquier carácter y \ 1 es el resultado de la captura, básicamente buscando una repetición consecutiva de ese carácter. Si desea ser específico sobre qué personajes desea encontrar son idénticos consecutivos, simplemente reemplace "cualquier personaje" con una clase de personaje ...
([a-zA-Z]) \ 1
Busca una letra mayúscula o minúscula repetida consecutiva. Coincide con "abbc123" y no con "abc1223". Para permitir un espacio entre ellos (es decir, un ab), luego incluya un espacio opcional en la expresión regular entre el carácter capturado y la repetición ...
([az] AZ]) \ s? \ 1
Estoy bastante seguro de que puede usar [Az] en lugar de [a-zA-Z] para obtener caracteres alfa en mayúsculas y minúsculas http://www.w3schools.com/jsref/jsref_obj_regexp.asp
[A-z]
coincide con más que letras. Específicamente, también coincide con corchetes, barras invertidas, signos de intercalación, guiones bajos y comillas invertidas.
Z
y a
, por lo que serían (erróneamente) incluidos en tal patrón. Apoyo la recomendación: ¡No use w3schools! Tiene mucha información sutilmente mala como esta.
[65-90]
coincidirá 5
- 9
(que también incluye 6
) y 0
!
{2}
sin la coma también debería funcionar, ¿verdad?