2011-02-07 8 views
5

Quiero comprobar una cadena de entrada para validar un texto adecuado.expresiones regulares para comprobar 3 o más apariciones consecutivas de un personaje

a. Quiero que los usuarios permitan caracteres alfanuméricos al escritor, incluyendo punto, coma, guión y corchete()

b. Sin embargo, no quiero que los usuarios ingresen un NÚMERO con 3 o más dígitos juntos. por ejemplo: 12 está permitido mientras que 185 NO.

c. No quiero que los usuarios ingresen cadenas como "............." o "----------" o "aaaaaaaaaaaaaa" o "bbbbbbbb", etc.

Por favor sugiera la expresión regular para el mismo.

Respuesta

1

Usted puede utilizar la expresión regular:

(?!.*(.)\1{2})^[a-zA-Z0-9.,()-]*$ 

Utiliza la búsqueda negativa hacia delante (?!.*(.)\1{2}) para asegurar que no hay no hay un grupo de 3 repeticiones de ninguno de los personajes.

Luego usa la expresión regular ^[a-zA-Z0-9.,()-]*$ para asegurarse de que la cadena está hecha solo de alfabetos, números, punto, coma, paréntesis y guión.

Rubular link

+0

He utilizado este 'code' si (preg_match (" (*() \ 1 {2}) ^?!.. [A-zA-Z0-9,() -.] * $ ", $ about_you)) {\t \t \t \t \t \t echo 'Invalid Text'; \t \t} 'code' y que arroja el siguiente error: Advertencia: preg_match() [function.preg-match]: Desconocido modificador '^' en E: \ Proyectos \ www \ scripts \ test-f.php en la línea 33 línea 33 begis en si (preg_match ("(*() \ 1 {2})^[a-zA-Z0-9,() -.]?!.. * $", $ about_you)) { –

+0

Probar: 'Si (preg_match ("?!../(*() \ 1 {2})^[. a-zA-Z0-9,() -] * $ /", $ about_you)) {' – codaddict

+0

Lo siento pero no funcionó. Aunque ahora no obtengo ningún error de análisis, pero la expresión no puede mapear la cadena como debería ser 'code' if (preg_match ("/(?!. * (.) \ 1 {2})^[a-zA -Z0-9,() -] * $ /", $ about_you)) { \t \t \t echo "error".; \t \t} 'code' –

0

La mayoría de librerías de expresiones regulares apoyan la folloing: /(.)\1{2,}/

donde \1 es AA retrorreferencia

Cuestiones relacionadas