2010-04-07 34 views
29

No soy un experto en expresiones regulares, pero mi solicitud es simple: necesito hacer coincidir cualquier cadena que tenga al menos 3 o más caracteres que coincidan.¿Cómo uso una expresión regular para unir cualquier cadena, pero al menos 3 caracteres?

Así, por ejemplo, que tienen la cadena "hola mundo" y comparándola con lo siguiente:.

"he" => false // only 2 characters 
"hel" => true // 3 characters match found 
+4

3 o más chara cters desde cualquier lugar en la cadena o posición específica? Si literalmente "cualquier tres caracteres" es una coincidencia, ¿no es una cadena con una longitud de 3 o más caracteres por coincidencia? Solo tome la longitud de la secuencia ... – dawg

+1

¿Qué pasa con 'hwd', verdadero o falso? – kennytm

+1

¿Qué hay de "o w" o "ell"? –

Respuesta

8

Prueba este {3} esta coincidirá con cualquier characher salvo nueva línea (\ n)

1

Puede probar con 3 puntos simples. consulte el código en Perl debajo

$ a = ~ m /.../ #WHERE $ a es la cadena de

39

Se trata de expresiones regulares de Python, pero es probable que las obras en otros idiomas que implementan Eso también.

Supongo que depende de lo que usted considere un personaje. Si se trata de letras, números y caracteres de subrayado:

\w{3,} 

si sólo letras y dígitos:

[a-zA-Z0-9]{3,} 

Python también tiene un método de expresiones regulares para devolver todos los partidos de una cadena.

>>> import re 
>>> re.findall(r'\w{3,}', 'This is a long string, yes it is.') 
['This', 'long', 'string', 'yes'] 
+0

Sí, respondí totalmente una pregunta diferente a la que me estaba haciendo el OP.Después de leer la solución de Paxdiablo, tenía sentido. –

+1

Sin embargo, esta fue mi pregunta, así que ¡gracias por responder! – kiminoa

2

Si desea hacer coincidir a partir del inicio de la palabra, el uso:

\b\w{3,} 

\ b: límite de palabra

\ w: carácter de palabra

{3,}: tres o más veces para el carácter de palabra

1

Intenté encontrar similar como tema la primera publicación.

Para mis necesidades Me parece

http://answers.oreilly.com/topic/217-how-to-match-whole-words-with-a-regular-expression/

"\b[a-zA-Z0-9]{3}\b" 

3 palabras de char única "iokldöajf asd asd alkjwnkmd KJA WWDA da aij ednm < .jkakla"

+0

Vea el comentario debajo de la pregunta: "A quienes responden: las variantes de. {3,} no son lo que OP quiere". –

+1

Pero no responde la pregunta de todos modos. Es la expresión de búsqueda en sí que debe tener al menos tres caracteres de longitud. Por ejemplo, si el usuario está escribiendo en un cuadro de diálogo de búsqueda, no debe comenzar a resaltar las coincidencias hasta que se hayan ingresado al menos tres caracteres. El OP no dijo nada sobre palabras completas. –

Cuestiones relacionadas