RegEx para encontrar dois ou mais caracteres consecutivos

103

Preciso determinar se uma string contém dois ou mais caracteres alfa consecutivos. Dois ou mais [a-zA-Z]lado a lado. Exemplo:

"ab" -> valid
"a1" -> invalid
"a b" -> invalid
"a"-> invalid
"a ab" -> valid
"11" -> invalid
LRB
fonte

Respostas:

211

Isso deve resolver o problema:

[a-zA-Z]{2,}
Simon
fonte
Possível {2}sem a vírgula também deve funcionar, certo?
Alexander Mills
18
Alexandre, apenas para esclarecer algumas coisas: {2} significa que o comprimento deve ser 2. {2,} significa que o comprimento da expressão pode ser => 2
Shmarkus
1

Pessoalmente (como nooby) eu usei:

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

Mas o do Simon é muito melhor! = D

Mc Kazou
fonte
0

[a-zA-Z] {2,} não funciona com dois ou mais caracteres consecutivos idênticos. Para fazer isso, você deve capturar qualquer personagem e, em seguida, repetir a captura assim:

(.) \ 1

O parêntese captura o. que representa qualquer caractere e \ 1 é o resultado da captura - basicamente procurando uma repetição consecutiva daquele caractere. Se você deseja ser específico sobre quais caracteres você deseja encontrar são idênticos consecutivos, basta substituir "qualquer caractere" por uma classe de caractere ...

([a-zA-Z]) \ 1

Encontra uma letra maiúscula ou minúscula repetitiva consecutiva. Corresponde a "abbc123" e não a "abc1223". Para permitir um espaço entre eles (ou seja, um ab), inclua um espaço opcional na regex entre o caractere capturado e a repetição ...

([az] AZ]) \ s? \ 1

James Anderson
fonte
Tenho certeza de que você entendeu mal a pergunta, pois se trata de duas letras. Sua regex é para um caso diferente: duas letras semelhantes!
csabinho de 20/11/1919
-4

Tenho certeza de que você pode apenas usar [Az] em vez de [a-zA-Z] para obter caracteres alfa minúsculos e maiúsculos http://www.w3schools.com/jsref/jsref_obj_regexp.asp

Kevin
fonte
22
-1: Este é outro exemplo maravilhoso de porque você nunca deve usar o w3schools como referência ou educação. [A-z]corresponde a mais do que letras. Especificamente, ele também corresponde a colchetes, barras invertidas, circunflexos, sublinhados e crostas.
Tim Pietzcker
Na verdade, o que @TimPietzcker diz está correto; os caracteres que ele mencionou estão entre Ze a, portanto, seriam (erroneamente) incluídos em tal padrão. Eu apoio a recomendação: não use w3schools! Ele contém muitas informações sutilmente ruins como essa.
Andrew Barber
5
Ai primeiro zing em Stack, dói mais do que eu pensava. Então, ao incluir Az, ele corresponde a tudo de [AZ um monte de coisas que eu não quero e az] todos os charcodes entre maiúsculas e não maiúsculas? danshort.com/ASCIImap
Kevin
então posso dizer algo como [! - +]? Também existe uma maneira de acessar o charcode dentro de uma regex algo como [65-90] que seria o mesmo que [AZ]?
Kevin
@Kevin [65-90]corresponderá a 5- 9(que também inclui 6) e 0!
csabinho