• Publicidad

Expresiones regulares para buscar minúsculas

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

Expresiones regulares para buscar minúsculas

Notapor juan perez » 2011-04-06 22:37 @984

Hola, muy buenas.

Mi problema en sí es fácil de resolver. La dificultad es que lo tengo que hacer con expresiones regulares y estoy un poco trancado; agradecería cualquier ayuda.

Básicamente lo que tengo que hacer es cambiar todas las palabras que están en minúsculas y las antecede un < a mayúscula (ejemplo: bla bla <palabra1 bla <PalaBra2 bla>... tiene que pasar a bla bla <PALABRA1 bla <PALABRA2 bla>...).

Entiendo cómo funcionan tr/// o s/// y he estado haciendo algo, pero me parece que lo he estado pensando mal el problema ya que trato de leer palabra por palabra, y ir sustituyéndola a medida que leo. Tampoco estoy familiarizado con el lenguaje. Pienso que usando ER se enfocaría de forma diferente el problema, ¿no?
así que agradezco mucho cualquier ayuda lo más pronto posible.
juan perez
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2011-04-06 22:16 @969

Publicidad

Re: Expresiones regulares para buscar minúsculas

Notapor explorer » 2011-04-07 04:05 @212

Bienvenido a los foros de Perl en español, juan perez.

Sería interesante ver algo del código que hayas escrito, para ver si podemos ampliarlo.

Para buscar por minúsculas puedes usar la clase de caracteres [[:lower:]]. Y para pasar a mayúsculas puedes usar la función uc(), o el sistema de escapado "\U...\E".
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Expresiones regulares para buscar minúsculas

Notapor juan perez » 2011-04-07 14:12 @633

Ok, voy a investigar un poco sobre eso a ver si se me ocurre algo, y código... no he hecho nada que funcione. Me desvío y al final parece que estoy usando un for(), yo lo quiero hacer con ER.

Ahora estoy intentando algo del estilo
$x =~ /()()/;

pasar a mayúscula $2 y cambiarlo en $x

pero no lo logro hacer bien, no sé qué poner bien en los paréntesis, y también tengo la duda si esto funcionará en todo el texto.

Gracias por la ayuda, y perdona lo poco que sé de Perl, recién lo estoy conociendo, y está muy bueno, parece un lenguaje muy potente.
juan perez
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2011-04-06 22:16 @969

Re: Expresiones regulares para buscar minúsculas

Notapor explorer » 2011-04-07 14:31 @646

Pero te decía lo del código para ver cómo lees el texto que quieres traducir.

No es lo mismo que quieras procesar todo el texto, que solo las líneas, que solo algunas líneas, que solo algunas palabras de algunas líneas.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Expresiones regulares para buscar minúsculas

Notapor juan perez » 2011-04-07 16:07 @713

Ah, la idea es darle de entrada un archivo.

Pues lo que tengo que hacer es poner todas las etiquetas de un HTML en mayúscula, usando ER, claro.

Muchas gracias por la ayuda.
juan perez
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2011-04-06 22:16 @969

Re: Expresiones regulares para buscar minúsculas

Notapor explorer » 2011-04-07 19:44 @863

Bueno, entonces no es tan complicado...
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use common::sense;
  3. use autodie;
  4. use File::Slurp 'slurp';
  5.  
  6. my $html = slurp('kk.html');    # leemos el fichero
  7.  
  8. $html =~ s                      # sustitución
  9.         /                       # de...
  10.             <                   # buscamos un '<'
  11.             \s*                 # seguido, quizás, de espacios en blanco
  12.             \K                  # en ese caso, nos olvidamos de lo encontrado hasta ahora
  13.             (\w+)               # y capturamos la palabra que sigue
  14.  
  15.         /                       # ... por ...
  16.             uc $1               # esa misma palabra pasada a mayúsculas    
  17.        
  18.         /gex;                   # /g : repetir para todo el fichero
  19.                                 # /e : la segunda parte de la sustitución es código Perl
  20.                                 # /x : nos permite escribir la exp. reg. de esta manera tan chula
  21.  
  22. say $html;                      # e imprimimos el resultado
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Expresiones regulares para buscar minúsculas

Notapor juan perez » 2011-04-08 07:42 @362

Estaba intentando algo parecido. ¡je!
¡Qué ídolo!, ¡Muchas gracias!
juan perez
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2011-04-06 22:16 @969

Re: Expresiones regulares para buscar minúsculas

Notapor explorer » 2011-04-08 07:48 @366

juan perez escribiste:Estaba intentando algo parecido. ¡je!

Por eso es interesante ver tu código, porque así se puede crear una expresión regular ajustada a tu estilo (personal).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

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