Comunidad de diseño web y desarrollo en internet online

Expresion Regular con PHP evitar mas de 1 guion

Citar            
MensajeEscrito el 25 Jul 2013 01:58 am
hola que tal estoy trabajando con url amigables y me pidieron que no se repita el guion, por ejemplo

Código PHP :

<?php
$cadena = "8--7878-asde-esta-es-una--url-donle--7";
$patron = '/[a-z0-9]?\-\d/i';

echo "<h1>".$cadena."</h1>";
echo "<h1>".preg_replace($patron, "", $cadena)."</h1>";
?>


Esto es lo mas cercano que logre pero el resultado es este

Código HTML :

8--7878-asde-esta-es-una--url-donle--7
8-878-asde-esta-es-una--url-donle-


Entonces lo que necesito es que no se repita mas de 1 vez el guion continuamente, es decir como esta en el 8--7878 que imprima 8-7878, y asi, solo puede admitir letras, numeros, guiones, siempre y cuando no haya guiones seguidos como 2 o mas continuos.
gracias espero me puedan ayudar me estuve leyendo tutoriales y demas pero no entiendo :(. Saludos y bendiciones!

Por RZ

Claber

118 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 25 Jul 2013 12:52 pm
No me queda claro si la cadena objetivo ya está procesada o es exactamente la que muestras en el ejemplo o debes procesarla también.

De todas formas, para eliminar los guiones repetidos, la expresión regular es:

Código :

/-{2,}/


Y se usaría así:

Código PHP :

<?php
$cadena = "8--7878-asde-esta-es-una--url-donle--7";
$patron = '/-{2,}/';

echo "<h1>".$cadena."</h1>";
echo "<h1>".preg_replace($patron, "", $cadena)."</h1>";
?>

Lo que da como resultado

Código :

8-7878-asde-esta-es-una-url-donle-7

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 25 Jul 2013 10:36 pm
ok muchas gracias por contestar, pero ya había solucionado mi problema en otros foros, y por fin :). muchas gracias igualmente y bendiciones.

Por RZ

Claber

118 de clabLevel



Genero:Masculino  

chrome

 

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