Hola que tal amigos tengo un problema necesito sacar de un string unos patrones que tengo, ejemplo:
Código PHP:
$String = "[bold]hola esto es texto en bold[\bold] exto no es tento en bold,[bold]de nuevo texto en bold[/bold]";
De hecho esto es sencillo usando una Expresión Regular, misma que sería algo como:
Código PHP:
$RegExp = "\[bold\][a-z\s]*\[\/bold\]";
Pero digamos que ahora el String es este:
Código PHP:
$String = "[bold]hola esto es texto en bold[\bold] exto no es tento en bold,[bold]Mi fecha de nacimiento en bold 27081983[/bold]";
Esto tambien es muy sencillo:
Código PHP:
$RegExp = "\[bold\][a-z\s\d]*\[\/bold\]";
Pero se complica cuando hay caracteres extraños, ejemplo:
Código PHP:
$String = "[bold]hola esto es texto en negritas OK?[/bold] esto se ve que no es texto en bold, unos cuantos caracteres en bold [bold]ñññññ[\bold]";
Si uso algo como:
Código PHP:
$RegExpr = "\[bold\][a-z\s\d\W]*\[\/bold\]";
Me regresa toda la cadena, es decir deberia regresar algo como
Código PHP:
echo $MyArray[0][0]; #Esto debería imprimir -> [bold]hola esto es texto en negritas OK?[/bold]
echo $MyArray[0][1]; #Esto debería imprimir -> [bold]ñññññ[/bold]
pero por el contrario imprime:
Código:
[bold]hola esto es texto en negritas OK?[/bold] esto se ve que no es texto en bold, unos cuantos caracteres en bold [bold]ñññññ[\bold]
aqui les pongo una liga pára que prueben sus expresiones regulares:
http://www.cuneytyilmaz.com/prog/jrx/
Por cierto uso la funcion:
Código PHP:
preg_match_all("/" . $RegExp . "/", $String, $MyArray);
De antemano muchas gracias amig@s