Foros del Web » Programando para Internet » PHP »

Quitar signos de puntuación, expresiones regulares

Estas en el tema de Quitar signos de puntuación, expresiones regulares en el foro de PHP en Foros del Web. Amigos, Tengo frases como: Hostnig, Rainer. éd; Strecker, Matthias. éd; Guffroy, Jean. éd y con más signos. la pregunta es: como le digo a mi ...
  #1 (permalink)  
Antiguo 07/10/2010, 15:46
Avatar de daniel.manchego  
Fecha de Ingreso: mayo-2006
Mensajes: 111
Antigüedad: 17 años, 10 meses
Puntos: 0
Quitar signos de puntuación, expresiones regulares

Amigos,

Tengo frases como:

Hostnig, Rainer. éd; Strecker, Matthias. éd; Guffroy, Jean. éd

y con más signos.

la pregunta es: como le digo a mi patron de expresiones regulares que me quite todos los signos de puntuación y que sólo me deje las letras con sus acentos y todo, nada de signos????

Saludos.
__________________
Daniel Manchego
http://dmanchego.blogspot.com
  #2 (permalink)  
Antiguo 07/10/2010, 16:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Quitar signos de puntuación, expresiones regulares

pues tan solo niega un conjunto:
Cita:
[^\w] = \W
te recomiendo leer lo siguiente:
http://www.forosdelweb.com/f18/aport...s-pcre-646110/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 07/10/2010, 16:25
Avatar de daniel.manchego  
Fecha de Ingreso: mayo-2006
Mensajes: 111
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Quitar signos de puntuación, expresiones regulares

Muchas gracias!!!
__________________
Daniel Manchego
http://dmanchego.blogspot.com
  #4 (permalink)  
Antiguo 07/10/2010, 16:35
Avatar de daniel.manchego  
Fecha de Ingreso: mayo-2006
Mensajes: 111
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Quitar signos de puntuación, expresiones regulares

Yo hice este patrón:

$patron = '/[¿!¡;,:\.\?#@()"]/';
$reemplazo = '';
$value = preg_replace($patron,$reemplazo, trim($value));

Se podría mejorar????
__________________
Daniel Manchego
http://dmanchego.blogspot.com
  #5 (permalink)  
Antiguo 07/10/2010, 17:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Quitar signos de puntuación, expresiones regulares

mira, en tu patrón solo tomas en cuenta ciertos caracteres especiales... ¿que sucede si yo ingreso en el texto cualquier otro que no has listado?

entonces se vuelve tedioso tener que editar la expresión por cada carácter nuevo que encontremos...

¿como podríamos mejorar esto?

hay dos formas de analizar la respuesta:

- la mala: listando todos los caracteres inválidos (como lo haces ahora)
Cita:
[¿!¡;,:\.\?#@()"] significaría "cualquiera de estos"
- la buena: eliminando todos los caracteres que no sean validos (lo mismo pero volteado)
Cita:
[^\w] significaría "cualquier que no sea un carácter a-zA-Z0-9"
como puedes observar siempre hay dos formas de cumplir el mismo objetivo, obviamente debes usar la que mas simplifique y facilite la tarea...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 07/10/2010, 21:08
Avatar de daniel.manchego  
Fecha de Ingreso: mayo-2006
Mensajes: 111
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Quitar signos de puntuación, expresiones regulares

Genial patetrueke!!!

Pero lo malo es que me quita los caracteres con acento y yo uso tanto el acento grave como el agudo (à, á)

Cómo le agrego?

Saludos!
__________________
Daniel Manchego
http://dmanchego.blogspot.com
  #7 (permalink)  
Antiguo 07/10/2010, 21:10
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 5 meses
Puntos: 334
Respuesta: Quitar signos de puntuación, expresiones regulares

intenta con
/[^\pL]/
__________________
More about me...
~ @rhyudek1
~ Github
  #8 (permalink)  
Antiguo 07/10/2010, 21:22
Avatar de daniel.manchego  
Fecha de Ingreso: mayo-2006
Mensajes: 111
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Quitar signos de puntuación, expresiones regulares

Hola Hidek1

Me fue mucho mejor!!! pero ahora sólo falta algo más... que cuando encuentre esos signos que no son lo que quiero elimine el espacio que ocupa en la cadena.
__________________
Daniel Manchego
http://dmanchego.blogspot.com
  #9 (permalink)  
Antiguo 08/10/2010, 07:05
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 5 meses
Puntos: 334
Respuesta: Quitar signos de puntuación, expresiones regulares

en el preg_replace ponele que los sustituya por nada..

Código PHP:
preg_replace('/**patron**/'' '$string); // mal
preg_replace('/**patron**/'''$string); // bien 
si le pones un espacio.. claro que te dejara un espacio ;D

saludos.
__________________
More about me...
~ @rhyudek1
~ Github
  #10 (permalink)  
Antiguo 08/10/2010, 12:47
Avatar de daniel.manchego  
Fecha de Ingreso: mayo-2006
Mensajes: 111
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Quitar signos de puntuación, expresiones regulares

Mira que era tán fácil!!!
muchas gracias!!!!
__________________
Daniel Manchego
http://dmanchego.blogspot.com

Etiquetas: expresiones, quitar, 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:58.