Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Capturar texto en [] en string

Estas en el tema de Capturar texto en [] en string en el foro de PHP en Foros del Web. Buenas noches chicos, nuevamente vengo pidiendo una mano amiga :) tengo un string por ejemplo "tengo un [problema] atrapando texto [en] corchetes" Necesito capturar en ...
  #1 (permalink)  
Antiguo 29/01/2016, 21:29
Avatar de JhonErick  
Fecha de Ingreso: noviembre-2012
Ubicación: colombia
Mensajes: 38
Antigüedad: 11 años, 5 meses
Puntos: 3
Capturar texto en [] en string

Buenas noches chicos, nuevamente vengo pidiendo una mano amiga :)

tengo un string por ejemplo
"tengo un [problema] atrapando texto [en] corchetes"

Necesito capturar en un array el texto que esta entre corchetes para que quede algo así
array([0]="problema", [1]="en")
el tema es que las palabras y la cantidad de ellas pueden ser aleatorias lo único es que las palabras claves a atrapar están en corchetes

El tema lo tengo solucionado pero a mano primero divido la cadena en el primer "[" y luego por el segundo y hay atrapando su contenido pero me gustaría aplicar la función preg_split pero nada que puedo configurar la expresión regular para que haga lo que quiero

Código PHP:

$content 
'<strong>Lorem[jhon] ipsum dolor</strong>[sit]';
    
$chars preg_split('/<[^\[][^\]]>/i'$content, -1PREG_SPLIT_NO_EMPTY PREG_SPLIT_DELIM_CAPTURE);
    
print_r($chars); 
he estado volteando con el ejemplo que agrego pero nada que hallo la respuesta agradezco si alguien me puede tirar un cable, saludos
  #2 (permalink)  
Antiguo 30/01/2016, 01:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Capturar texto en [] en string

Usar "split" para eso no sirve, debes usar "match", consulta la función pregm_match_all() en el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 30/01/2016, 10:33
Avatar de JhonErick  
Fecha de Ingreso: noviembre-2012
Ubicación: colombia
Mensajes: 38
Antigüedad: 11 años, 5 meses
Puntos: 3
Respuesta: Capturar texto en [] en string

Muchas gracias eso era, dejo la respuesta por si alguien la necesita

Código PHP:

    $pattern 
"/\[[^\]]*\]/";
    
$subject "[token1] foo [token2] bar";
    
preg_match_all($pattern$subject$matches);
    
print_r($matches); 
la respuesta es
Array ( [0] => Array ( [0] => [token1] [1] => [token2] ) )

Etiquetas: expresiones_regulares
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:09.