2011-06-14 39 views

Respuesta

6

Puede haber atajos en algunas librerías de expresiones regulares, pero siempre se puede ...

b{3,}|c{3,}|d{3,}... 

Algunas bibliotecas por ejemplo permiten hacer coincidir el uso una referencia posterior que puede ser un poco más limpia ...

(bcd...)\1{2,} 
+0

1 que va a funcionar. ¡un poco demasiado detallado para mi gusto! –

+0

actualizado, pero puede depender de su lib ... –

+0

+1 por ser el primero en responder esto :) – anubhava

0

Puede usar grupos de captura con referencias retrospectivas es. Esto capturará símbolos que se repiten:

/(
    ([\w])  ## second group is just one symbol 
    \2   ## match symbol found in second groups 
    \2+   ## match same symbol one or more times 
)/x    ## x is just to allow inner comments 

Pero no todos los motores regexp admiten referencias anteriores.

15

Prueba esto:

([b-df-hj-np-tv-z])\1{2,} 

Explicación:

  • [b-df-hj-np-tv-z] son todas las consonantes
  • \1 es la referencia de nuevo a la primera de grupo (es decir, el carácter misma)
  • {2,} significa "2 o más del término anterior", haciendo 3 o más e en todos

Probado y esto funciona.

+0

"http" o "tipo" están atrapados – user455318

+1

Como Andrew White señaló a continuación; ¿No coincidirá esto con "bcd"? – Mikey

+1

Ahora no coincidirá con "bbb", necesita "bbbb" ya que el primero se corresponde y luego la referencia de atrás debe coincidir 3 veces más. –

6

Esto se trata de la expresión regular más corto que podría pensar en hacerlo:

(?i)([b-z&&[^eiou]])\1\1+ 

Este utiliza una clase de caracteres de expresiones regulares resta a excluye las vocales.
No tuve que mencionar "a" porque comencé el rango desde "b".
El uso de (?i) hace que la caja de expresiones regulares sea insensible.

Ver a live demo.

0

La expresión regular de respuesta más alta [b-df-hj-np-tv-z])\1{2,} tiene un error ("Y" es fogotten)

Debe ser [b-df-hj-np-tv-xz])\1{2,}

+1

"Y" no fue olvidado, en ese caso es simplemente una consonante. – Apollo

+0

La letra Y puede considerarse tanto una vocal como una consonante. [prueba de Oxford Dictionary] (https://en.oxforddictionaries.com/explore/is-the-letter-y-a-vowel-or-a-consonant) –

Cuestiones relacionadas