Foros del Web » Programando para Internet » PHP »

EREG(): Problema con caracteres "[ . ] ," y otros.

Estas en el tema de EREG(): Problema con caracteres "[ . ] ," y otros. en el foro de PHP en Foros del Web. Hola a todos! Estoy teniendo algunos problemas al crear una expresión regular para matchear usando eregi(). El caso es que *CREO* estar utilizando correctamente la ...
  #1 (permalink)  
Antiguo 29/11/2007, 13:44
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 3 meses
Puntos: 2
Pregunta EREG(): Problema con caracteres "[ . ] ," y otros.

Hola a todos!

Estoy teniendo algunos problemas al crear una expresión regular para matchear usando eregi(). El caso es que *CREO* estar utilizando correctamente la sintaxis pero aún asi me da error con algunos caracteres.

Por ejemplo, quiero que se permitan los corechetes "[" y "]" entonces en el pattern utilizo "\[" y "\]" tal como lo vi en decenas de sitios web con tutoriales... aún asi EREGI me dice que falló

Este es mi ejemplo:

Código:
	$string = "Téxto { } [ ]";

	if (!ereg("^[a-zA-Z0-9áéíóúàèìòùÁÉÍÓÚÀÈÌÒÙ[:space:]\{\}\*\+\-\[\]]+$", $string)) {
		echo "Falló";
	} else {
		echo "Andó";
	}
Me pasa lo mismo para "." "," y otros caractéres... también probe utilizando doble \, asi: \\[ y \\] pero no hubo caso... ya no se de qué forma hacerlo!


¿Alguno sabe como salir de este rompecabezas? :P

Gracias :)


edu
  #2 (permalink)  
Antiguo 29/11/2007, 16:35
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: EREG(): Problema con caracteres "[ . ] ," y otros.

No estoy seguro de como hacerlo con ereg, pero podés hacerlo con preg que es más rápido y te permite lo que querés

Código PHP:
<?php
$string 
"Téxto { } [ ]";

if (!
preg_match("#^[a-zA-Z0-9áéíóúàèìòùÁÉÍÓÚÀÈÌÒÙ[:space:]\{\}\*\+\-\[\]]+$#"$string)) {
    echo 
"Falló";
} else {
    echo 
"Andó";
}
?>
  #3 (permalink)  
Antiguo 29/11/2007, 18:48
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 3 meses
Puntos: 2
Re: EREG(): Problema con caracteres "[ . ] ," y otros.

Ahh el famoso preg_match ! estuve mirando el man de php.net hoy y justamente decian que preg_match era más rapido pero en el momento estimé que tenia otra funcionalidad... voy a probarlo así como lo usas vos, te agradezco.

Una pregunta... ¿por qué usas un numeral en cada extremo del pattern? (#pattern#).

Saludos y gracias!

edu
  #4 (permalink)  
Antiguo 29/11/2007, 18:55
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: EREG(): Problema con caracteres "[ . ] ," y otros.

Cita:
Iniciado por Computer XTress Ver Mensaje
[...]
Una pregunta... ¿por qué usas un numeral en cada extremo del pattern? (#pattern#).
[...]
Es el delimitador de la expresion regular. Puede ser algun otro caracter, como una barra inclinada (/) o un guion (-)

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:44.