Foros del Web » Programando para Internet » ASP Clásico »

expresiones regulares

Estas en el tema de expresiones regulares en el foro de ASP Clásico en Foros del Web. hola como estan alguien sabe como hacer para evaluar una cadena con expresiones regulares de asp la cadena ke necesitaria evauar seria como una proposicion ...
  #1 (permalink)  
Antiguo 10/02/2008, 21:14
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
expresiones regulares

hola como estan

alguien sabe como hacer para evaluar una cadena con expresiones regulares de asp

la cadena ke necesitaria evauar seria como una proposicion asi

(p*q)

tambien

la negacion de p osea
¬ p

que al introducir esas cadenas me diga si coincide con el patron o no.


__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #2 (permalink)  
Antiguo 11/02/2008, 00:32
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: expresiones regulares

1er paso- Funcion:

Código:
function ereg(strOriginalString, strPattern, varIgnoreCase)
  ' Function matches pattern, returns true or false
  ' varIgnoreCase must be TRUE (match is case insensitive) or FALSE (match is case sensitive)
  dim objRegExp : set objRegExp = new RegExp
  with objRegExp
    .Pattern = strPattern
    .IgnoreCase = varIgnoreCase
    .Global = True
  end with
  ereg = objRegExp.test(strOriginalString)
  set objRegExp = nothing
end function
2do paso-patron: "p[a-z]q"
El patron dice p seguido de cualquier ocurrencia entre a y z seguido de q

3er paso-llamar a la funcion que devuelve un boolean:
Código:
<%Response.Write(ereg("piosq", "p[a-z]q", true))%>
Fuente de la funcion: http://www.ilovejackdaniels.com/asp/...r-expressions/

Salud
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 11/02/2008, 06:16
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
Re: expresiones regulares

hola gracias por la respuesta.. por lo que veo creo que me evalua la cadena p y cualquier caracter ke este en la mitad de p y q,
como haria para uqe solo me acepte con un parentecis a la izquierda seguido de cualquier caracter 1 sola ves luego 1 asterisco luego otro caracter 1 sola ves y cierra parentecis

gracias..

(a*b)
parentecis letra asterisco letra parentecis.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #4 (permalink)  
Antiguo 11/02/2008, 12:11
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: expresiones regulares

Veamos, no lo he probado pero mas o menos tendrias que jugar con algo asi:
Código:
\(.\*.\)
Paréntesis es usado por las expresiones regulares para agrupar secciones, por lo tanto tenemos que hacer un "escape" mediante la diagonal invertida, lo mismo para * que denota cero o más ocurrencias, en tanto que el punto es cualquier caractér que no sea una nueva línea, como te dije, no lo he probado pero fíjate si te sirve.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 11/02/2008, 13:33
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
Re: expresiones regulares

ok muchas gracias. lo probare
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #6 (permalink)  
Antiguo 11/02/2008, 14:34
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
Re: expresiones regulares

hola gracias por la ayuda,
me funciona para (a*b)
pero tambien para ((a*b)

deberia ser algo como solo 1 parentesis, seguido de solo 1 caracter, seguido de solo 1 asterisco, seguido de solo 1 caracter y seguido de solo 1 parentesis.

como lo puedo mejorar para ke sea mas extricto?
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #7 (permalink)  
Antiguo 11/02/2008, 15:03
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: expresiones regulares

Mmmmhhhhh, un número entre llaves le dice al patrón que acepte el mismo número de ocurrencias:
Código:
\({1}.\*.\){1}
Fijate si asi te funciona.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #8 (permalink)  
Antiguo 11/02/2008, 15:56
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
Re: expresiones regulares

la probe asi pero no me funciono,
le colocque ((a*b) y me dice ke esta bien y se supone ke deberia decir ke esta mal.
solo debe decir true cuando este escrito asi (a*b)
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #9 (permalink)  
Antiguo 11/02/2008, 16:16
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: expresiones regulares

Claro, porque después del paréntesis acepta cualquier caractér...existe un patrón para los caracteres que vas a aceptar antes y después del *?

[EDIT]Muy extraño, estoy probando y hasta el momento no he encontrado la forma de hacer que haga match con una sola ocurrencia de paréntesis izquierdo, al alguién le ha sucedido esto??[/EDIT]
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway

Última edición por u_goldman; 11/02/2008 a las 16:40
  #10 (permalink)  
Antiguo 11/02/2008, 17:05
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: expresiones regulares

Siempre se me olvida validar el principio de la cadena, por eso es que siempre validaba el caracter al principio:

Código:
^[\(][a-z]\*[a-z]\)$
Esto valida que

Comience con (
Cualquier letra
*
Cualquier letra
Termine con )

Como te mencioné amteriormente sería bueno saber las reglas para lo que va antes y después de *.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
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 21:16.