Foros del Web » Programación para mayores de 30 ;) » RegExp »

Expresiones regulares y preg_match_all

Estas en el tema de Expresiones regulares y preg_match_all en el foro de RegExp en Foros del Web. Hola de antemano gracias por su ayuda. estoy intentando tener un lenaguaje de marcado propio para un sistema y necesito lo siguiente: en un texto ...
  #1 (permalink)  
Antiguo 22/09/2013, 21:08
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Expresiones regulares y preg_match_all

Hola de antemano gracias por su ayuda. estoy intentando tener un lenaguaje de marcado propio para un sistema y necesito lo siguiente:

en un texto cualquiera necesito sacar las etiquetas encuentre con sus respectivas propiedades el ejemplo es el siguiente

$subject = "Esto es un ejemplo [unitag nombre='Nombre Del comprador' descripcion='Escribe el nombre del comprador']Carlos Andres[/unitag] de un tag [unitag nombre='Nombre Del comprador2' descripcion='Escribe el nombre del comprador 2']Carlos Andres 2[/unitag]";

lo que quisiera tener es un vector algo asi como
$array[0]['nombre'] = 'Nombre del comprador';
$array[0]['descripcion'] = 'Escribe el nombre del comprador';
$array[0]['ejemplo'] = 'Carlos Andres';
$array[1]['nombre'] = 'Nombre del comprador 2';
$array[1]['descripcion'] = 'Escribe el nombre del comprador 2';
$array[1]['ejemplo'] = 'Carlos Andres 2';

Bueno o crear un vector que sea fácil para mi sacar los diferentes tags y sus propiedades.

saludos
__________________
SEO en Medellin
  #2 (permalink)  
Antiguo 24/09/2013, 14:54
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Expresiones regulares y preg_match_all

Hice estos ejercicios, no son la solución completa.
Código PHP:
Ver original
  1. <?php
  2.  
  3. $subject = "Esto es un ejemplo [unitag nombre='Nombre Del comprador' descripcion='Escribe el nombre del comprador']Carlos Andres[/unitag] de un tag [unitag nombre='Nombre Del comprador2' descripcion='Escribe el nombre del comprador 2']Carlos Andres 2[/unitag]";
  4.  
  5. $tags_regex = "|\[(\w+)([^[\]]*?)\]([^[\]]*?)\[/\\1\]|";
  6.  
  7. var_dump(preg_match_all($tags_regex, $subject, $matches), $matches);
  8.  
  9.  
  10.  
  11. $attrs_regex = "|(\w+)\s*=\s*(['\"]).*?\\2|";
  12.  
  13. foreach ($matches[2] as $attrs) {
  14.   var_dump(preg_match_all($attrs_regex, $attrs, $sub_matches), $sub_matches);
  15. }

Desarrollar las expresiones es fácil, implementar todo lo que buscas no tanto.

Lo demás te toca a ti.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: expresiones, php, 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 09:10.