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

Expresión regular

Estas en el tema de Expresión regular en el foro de ASP Clásico en Foros del Web. Hola, mecesito ayuda con unas expresiones regulares para im editor BBCode, por ejemplo para el tag de COLOR ( [ C O L O R ...
  #1 (permalink)  
Antiguo 30/09/2007, 11:50
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 19 años, 5 meses
Puntos: 9
Expresión regular

Hola, mecesito ayuda con unas expresiones regulares para im editor BBCode, por ejemplo para el tag de COLOR ( [ C O L O R ="red" ]texto en rojo[ / C O L O R]) tengo:

Código:
exprReg.Pattern = "\[COLOR=\""([^\""]+)\""\]([^\[]+)\[\/COLOR\]"
Si os fijáis, el $2 ([^\[]+) sería cualquier cosa menos un corchete de abrir, pero esto me impide anidar tags, por ejemplo, no me aceptaría esto:

Código:
[C O L O R ="red"][ B ]texto en rojo y negrita[ / B ][ / C O L O R]
Mi pregunta es como puedo sustituir ([^\[]+) cualquier cosa menos un corchete de abrir por cualquier cosa, y entonces me debería coger todo hasta que encuentra la cadena exacta \[\/COLOR\],

Yo se que \d es cualquier numero, \w cualquiér alfanumerico, pero como le digo que sin restricciones? Algo así como el *.* de los archivos??

Gracias

PD: He separado los tags de ejemplo para que no me los interprete este editor BB de FDW
  #2 (permalink)  
Antiguo 30/09/2007, 23:15
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Re: Expresión regular

La verdad es que ahora mismo mi cabeza ya no da para más como para ponerme a hacer expresiones regulares, pero se me ocurre que puedes tratar con corchetes rectangulares [] los cuáles si no son escapados, harán un match a cualquier caractér que tengas dentro de ellos.

Mañana en un rato libre te prometo revisar a detalle tu expresión si es que no has podido dar con la solución.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 01/10/2007, 01:28
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 19 años, 5 meses
Puntos: 9
Re: Expresión regular

Pues me parece que no funciona.. La cosa es que yo tengo

[ B ] texto en negrita [ / B ]

Mi expresion regular debería ser:

\[B\](cualquier caracter es valido*)\[/B\] ,

en principio yo ponía
\[B\](cualquier cosa menos corchete de abrir+)\[/B\], es decir \[N\]([^\[]+)\[\/N\] pero esto me impide anidar tags

La expresion que tu dices []* me funciona de manera aislada, pero no dentro de la expresión \[B\]([]*)\[/B\]

Las estoy probando aquí

Gracias

Última edición por PosProdukcion; 01/10/2007 a las 01:57
  #4 (permalink)  
Antiguo 01/10/2007, 16:01
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 19 años, 5 meses
Puntos: 9
Re: Expresión regular

Vaya, ahora me encuentro otro problema añadido...

Si pongo esto

Código:
exprReg.Pattern = "\[N\]([^\""]+)\[\/N\]"
Resulta que cuando ponga dos negritas seguidas como:

[ N] ESTO SÍ [ / N] ahora no hay negrita [ N ] Y AHORA OTRA VEZ SÍ [ / N ] pues me coge desde la primera apertura hasta la última todo negrita...

Este editor supongo que lo hace bien, sino vamos a probar:

ESTO SÍ ahora no hay negrita Y AHORA OTRA VEZ SÍ

¿No hay por ahí alguien que entienda bien esto de las expresiones regulares y me pueda ayudar con lo de anidar y con estos tags consecutivos??

PD: Por cierto, en el último mensaje veo que he mezclado B y N para negrita, uso siempre la N...
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 18:53.