Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/01/2013, 18:26
Avatar de dontexplain
dontexplain
 
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 12 años, 6 meses
Puntos: 127
Respuesta: expresion regular

Las expresiones regulares se construyen o bien literalmente o usando new RegExp()

expr = new RegExp("[^<[a-z]*[^>]*>]" + variable + @"[^<\/[a-z]*>]" );

y omitiendo el símbolo @ que has debido meter por error.

Luego, hay cuestiones que no entiendo:

El grupo es incorrecto porque ^ sólo incluye un grupo de no coincidencia, lo cual todo lo demás lo ignorará. Además de que [a-z] no tiene nada que ver.

En base a lo que dices un conjunto similar podría valerte

"(?:<a.*> +){0}" + variable + "(?! *<\/a>)"

coincidirá siempre y cuando coincida con cualquier cosa que contenga 0 veces <a ****> (?:<a.*>){0} seguido de variable y si no está seguido por </a> (?!grupo)

eso significa que

<a>variable sólo capturará variable

y

<a>variable</b> donde también sólo capturará variable

y en

<a href="asd.html">variable</a> no lo capturará porque coincide con la expresión.

( *) se usa para que coincida aunque incluya uno o varios espacios y ?: para que el grupo no se capture.

Un saludo.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor

Última edición por dontexplain; 26/01/2013 a las 18:38