RegEx para encontrar dos o más caracteres consecutivos

98

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
LRB
fuente

Respuestas:

206

Esto debería funcionar:

[a-zA-Z]{2,}
Simón
fuente
Posible {2}sin la coma también debería funcionar, ¿verdad?
Alexander Mills
17
Alexander, solo para aclarar algunas cosas: {2} significa que la longitud tiene que ser 2. {2,} significa que la longitud de la expresión puede ser => 2
Shmarkus
1

Personalmente (como nooby) que he usado:

[0-9][0-9]+.

¡Pero el de Simon, es mucho mejor! = D

Mc Kazou
fuente
0

[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

James Anderson
fuente
Estoy bastante seguro de que no entendió la pregunta, ya que se trata de dos letras. Su expresión regular es para un caso diferente: ¡dos letras similares!
csabinho
-4

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

Kevin
fuente
22
-1: Este es otro maravilloso ejemplo de por qué nunca debe usar w3schools como referencia o educación. [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.
Tim Pietzcker
De hecho, lo que dice @TimPietzcker es correcto; los caracteres que mencionó se encuentran entre Zy 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.
Andrew Barber
5
¡Ay, primer zumbido en Stack, duele más de lo que pensaba! Entonces, al incluir Az, ¿coincide con todo, desde [AZ un montón de cosas que no quiero y az] todos los códigos de caracteres entre mayúsculas y no mayúsculas? danshort.com/ASCIImap
Kevin
para que pueda decir algo como [! - +]? Además, ¿hay alguna manera de acceder al código de caracteres dentro de una expresión regular, algo como [65-90], que sería lo mismo que [AZ]?
Kevin
@Kevin [65-90]coincidirá 5- 9(que también incluye 6) y 0!
csabinho