Comunidad de diseño web y desarrollo en internet online

Buscar expresión regular excepto en etiquetas

Citar            
MensajeEscrito el 29 Jul 2011 12:46 am
Hola,
Lo que pretendo hacer es buscar cualquier expresión que se encuentre en llaves { } con la función preg_match_all exepto si estas se encuentran dentro de la etiqueta [ code ] [/ code ]

Dejo un ejemplo:

Código PHP :

$message = 'Cadena: {Alta Vista [Bot]}
Cadena: {admin_2}
Cadena: {user}
Cadena: {MAYUSCULA}
Cadena: {123456}
Cadena: [code:1:9f7b504269]{asd}[/code:1:9f7b504269]
Cadena: {TEST user}';

$usr = preg_match_all('/{(.+)}/', $message, $list);

$out = print_r($list, true);

echo "<pre>$out</pre>";  


Ya logre sacar todas la expresiones dentro de las llaves { } con:

Código :

/{(.+)}/


Esto me imprime:

Código :

Array
(
    [0] => Array
        (
            [0] => {Alta Vista [Bot]}
            [1] => {admin_2}
            [2] => {user}
            [3] => {MAYUSCULA}
            [4] => {123456}
            [5] => {asd}
            [6] => {TEST user}
        )

    [1] => Array
        (
            [0] => Alta Vista [Bot]
            [1] => admin_2
            [2] => user
            [3] => MAYUSCULA
            [4] => 123456
            [5] => asd
            [6] => TEST user
        )

)


Pero ahora como le digo que no me tome lo que esta dentro de [ code ] [/ code ] ?

Esa es mi duda, si alguien me puede ayudar a solucionarla me seria de muchísima ayuda.
Gracias de antemano.

Por Alorse

0 de clabLevel



Genero:Masculino  

Soy un programador

chrome
Citar            
MensajeEscrito el 29 Jul 2011 12:24 pm
Así y de golpe se me ocurre que...

Código :

/\s{(.+)}/i

hará el truco.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.