• Publicidad

Filtrado de caracteres no alfanuméricos

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Filtrado de caracteres no alfanuméricos

Notapor konextao » 2010-02-21 03:45 @198

Buenos días foreros.

Soy un meganovato en el tema del Perl pues hace poco que descubrí este lenguaje y me viene de perlas para hacer algún que otro proyecto.

Me gustaría saber cómo puedo filtrar una variable ($texto) para que solo queden en la misma los caracteres alfanuméricos y elimine caracteres extraños,

Por ejemplo, si la variable $texto contiene "0123~+/ABcDef╚~" pues que dicha variable quede en "0123ABcDef".

Un saludo.
Avatar de Usuario
konextao
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2010-02-21 03:32 @189
Ubicación: Madrid

Publicidad

Re: Filtrado de caracteres no alfanuméricos

Notapor explorer » 2010-02-21 07:48 @366

Bienvenido a los foros de Perl en Español, konextao.

Si quieres quedarte con solo caracteres alfanuméricos, te vale con

$texto =~ s/\W//g;

\W equivale a cualquier carácter no alfanumérico (excluyendo el '_'). Aplicamos la expresión regular (=~) a todo el $texto, sustituyendo (s///) cada carácter encontrado, por nada. Y lo repetimos para todos los demás (/g).

Más información en perldoc perlre (Character Classes and other Special Escapes).

Actualización: no nos has indicado si los caracteres pertenecen a una determinada codificación. Es importante porque no es lo mismo tratar como bytes una cadena de caracteres, que como una secuencia de caracteres.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Filtrado de caracteres no alfanuméricos

Notapor konextao » 2010-02-21 07:53 @370

Gracias mil por la respuesta.

Es simplemente que deseaba realizar el filtrado de una cadena de texto introducida a través de un formulario por lo que se trata de una simple cadena de caracteres.
Solo quería saber como eliminar caracteres extraños que a cualquiera le hubiera dado por introducir.

Cuanto más empiezo a conocer Perl más me gusta 8)

¡¡ Saludos !!
Avatar de Usuario
konextao
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2010-02-21 03:32 @189
Ubicación: Madrid


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 8 invitados