Lenguaje Perl. Adición a los ejercicios del numeral 3.5 (página 128).

1.   Elabore una expresión regular que cuente las palabras de una cadena. Al final de la cadena pueden existir uno o mas espacios.
2.   Elabore una expresión regular que cuente los caracteres de una cadena.
3.  Elabore una expresión regular que cuente cuantas palabras comienzan con mayúscula.
4.   Elabore una expresión regular que cuente cuantas palabras comienzan con minúscula.
5.   Elabore una expresión regular que cuente cuantos números escritos en hexa existen en una cadena. Un número hexa comienza con 0x y a continuación los caracteres que componen el número. Por ejemplo: 0xabc o 0xff o 0x4567.
6.   Elabore una expresión regular que cuente cuantos números escritos en octal existen en una cadena. Un número octal comienza con 0 y a continuación los caracteres que componen el número. Por ejemplo: 0777 o 01 o 04567.
7.  Elabore una expresión regular que cuente cuantas veces existen seguidos dos caracteres númericos despues de letras minúsculas
8.   Elabore una expresión regular que cuente cuantos números de dos dígitos existen en una cadena
9.   Elabore una expresión regular que cuente cuantas veces existe la palabra Perl o perl en una cadena
10.   Elabore una expresión regular que cuente cuantos caracteres no alfabéticos seguidos de un número de dos dígitos existen en una cadena
11.  Elabore una expresión regular que cuente el número de veces que se repiten dos dígitos seguidos de una , (coma)
12.   Elabore una expresión regular que analice una cadena y almacene lo siguiente:
En $1 el tercer número de 2 dígitos
En $2 el cuarto número de 2 dígitos
y escriba los contenidos de $1 y $2.
13.   Elabore una expresión regular que capture las notas escritas en uno de los siguientes formatos
x.
x.x
x
no olvide que . es diferente de \.
Por ejemplo: Alberto=4.5 Manuel=4, Paola=3., Carolina=3.5
La expresión debe tener la capacidad de capturar cualquier nota.
14.   Elabore una expresión regular que calcule las diferencias entre un segundo número y un primer número. La ? se utiliza para que tenga en cuenta la última pareja. Por ejemplo la cadena puede ser esta:
$cad="
13,34
12,45
56,78
13,15
23,38";
Observe que cada pareja esta separada de la siguiente por el caracter de salto de linea '\n'.
15.   Explique que escribe el siguiente programa:
$cont=0;
$cad="MAs vAle tArDe qUe nUnCa";
while($cad=~/[a-z]+[A-Z][a-z]+/g) {
    $cont++;
}
print"$cont\n";
16.  Explique que escribe el siguiente programa:
$cont=0;
$cad="MAs vAle tArDe qUe nUnCa";
while($cad=~/[a-z]*[A-Z][a-z]+/g) {
    $cont++;
}
print"$cont\n";
17.   Explique que escribe el siguiente programa:
$cont=0;
$cad="2,4,35,26,334,3,554,5";
while($cad=~/[0-9]+,[0-9]+/g) {
$cont++;
}
print"$cont\n";
18.   Elabore una expresión regular que busque en una cadena la sub-cadena que comienza por 'c' y termina con 's' y la reemplace por la cadena 'cambiado'.
19.   Explique que escribe el siguiente programa:
$cad="bueno";
$cad=~s/u*/X/;
print"$cad\n";
20.   Explique que escribe el siguiente programa:
$cad="bueno y buuen";
$cad=~s/u/X/g;
print"$cad\n";
21.   Elabore una expresión regular que busque la cadena que comienza por 'c' y termina con 's' y escriba lo que existe antes de la cadena encontrada (contenido de la variable $`), la cadena encontrada (contenido de la variable $&) y lo que existe despues de la cadena encontrada (contenido de la variable $').
22.   Explique que escribe el siguiente programa:
$cad="011015383940
011015353640
013015333940
554015383940
";
while($cad=~/.{6}38.{4}\n/g) {
$cont++;
}
print"$cont\n";
Observe que cada número esta separado del siguiente por el caracter de salto de linea '\n'.
23.   Explique que escribe el siguiente programa:
$cad="011015383940
011015353640
013015333940
554015383940";
$cont=0;
while($cad=~/.{6}38.{4}\n/g) {
$cont++;
}
print"$cont\n";
Observe que cada número esta separado del siguiente por el caracter de salto de linea '\n'.
24.   Escriba una expresión regular que cuente cuantos alumnos tienen 3.5 en la segunda nota. La cadena puede tener la siguiente información
$cad="Carmen,2,3.5
Carlos,2.5,3
Adriana,3.5,3.5
Magda,2.5,3.4
Diana,2.5,3.5
Carlos,2,3.5";
Observe que cada linea esta separada de la siguiente por el caracter de salto de linea '\n'.
25.   Elabore una expresión regular que sume los dígitos almacenados en una cadena
26.   Explique el funcionamiento del siguiente programa $cad="35694567";
$cont=0;
$cad=~/(.{4})(.{4})/;
print"$1 $2\n";
27.   Explique el funcionamiento del siguiente programa
$cad="35694567";
$cont=0;
$cad=~/(.)(.)(.)(.)(.)(.)(.)(.)/;
$aux=$1+$2+$3+$4;
print"$aux\n";
$aux=$5+$6+$7+$8;
print"$aux\n";
28.   Elabore una expresión regular que busque el primer operador (+,-,/,*,%) en una cadena y lo almacene en la variable $&. La expresión regular debe almacenar en $`, lo que existe antes del operador y en $' lo que existe despues del operador. El programa debe escribir la operación de los números encontrados. Por ejemplo dada la cadena "23454 - 45667", la respuesta debe ser -22213.
29.   Explique el funcionamiento del siguiente programa
$cad="336785694567";
$cont=0;
$cad=~/(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)/;
$aux=$1+$2+$3+$4+$5+$6;
print"$aux\n";
$aux=$7+$8+$9+$10+$11+$12;
print"$aux\n";
30.   Escriba una expresión regular que convierta a mayúsculas la primera y última letra de una cadena. Por ejemplo:
$cad="la universidad de de la Vida";
Convierte a mayúscula la 'l' y la 'a'.
31.   Escriba una expresión regular que convierta a mayúscula la letra indicada por $x. Por ejemplo si $x es 5 convertirá a mayúscula la quinta letra.
32.   Escriba una expresión regular que retire todos los caracteres especiales de una cadena
33.   Escriba una expresión regular que almacene todos los números en el arreglo @a, sin interesar los demas caracteres de la cadena
34.   Dada una cadena de la forma:
"Num-hexa esps op esps Num-hexa esps op esps Num-octal",
Elabore una expresión regular que almacene en $1 el primer número en $2 el operador(sin espacios), en $3 el segundo número en $4 el segundo operador(sin espacios) y en $5 el siguiente número. Por ejemplo:
"0x44 + 0xff - 0777",
las variables $1, $2, $3, $4, $5 deben almacenar respectivamente 44, +, ff, -, 777. A continuación (fuera de la expresión regular) se deben escribir instrucciones en Perl para hacer la operación y escribir el resultado. Los operadores validos son:
=,-,*,/. Un número hexa comienza por 0x. Un número oct comienza por 0.
35.  Escriba una expresión regular que almacene el último dígito de cada número de una cadena en el arreglo @a, sin interesar los demas caracteres de la cadena.
36.   Escriba una expresión regular que almacene todas las palabras de una cadena en el arreglo @a. El primer y último caracter de la cadena puede ser espacio.
37.   Elabore una expresión regular que intercabie la primera palabra por la última en una cadena. Por ejemplo:
"este es un juego de niņos".
Se deben intercambiar este y niņos.
38.   Elabore una expresión regular que intercabie la primera palabra por la segunda en una cadena. Por ejemplo:
"este es un juego de niņos".
Se deben intercambiar este y es.
39.   En una cadena existe una asignación. Por ejemplo:
"sueldo = 345.67";
Elabore una expresión regular que almacene en $1 el nombre de la variable y en $2 el valor que se va a asignar a esa variable. Puede existir cualquier número de espacios antes y despues del =.
40.   Elabore una expresión regular que capture en $1, $2, ... el mes el dia el aņo, la hora, los minutos y los segundos almacenados en una cadena con el siguiente formato:
mm/dd/aa cualquier-número-de-espacios hh:mm:ss
41.   Elabore una expresión regular que capture el primer datos almacenado en una cadena en formato hexa. Un dato en formato hexa se identifica así: "%XX", donde XX son los caracteres que indican el valor. Por ejemplo: "el disco tiene un espacio de %ff".
Almacene en $1 el dato "%ff" y escriba su valor en decimal.
42.   Elabore una expresión regular que busque el caracter '+' en una cadena y almacene en $`, lo que existe antes del '+' y en $' lo que existe despues del '+'. El programa debe escribir la suma de los números encontrados. Por ejemplo dada la cadena "23454 + 45667", la respuesta debe ser 69121.
43.   Elabore una expresión regular que retire los espacios que existan al comienzo de una cadena.
44.   Elabore una expresión regular que calcule la suma de todos los números escritos en octal, almacenados en una cadena. Por ejemplo:
"sume los numeros 057,0635,077".
Para esta cadena en una variable $contador se debería almacenar 523 en decimal.
45.   Elabore una expresión regular que retire los espacios que existan al final de una cadena.
46.   Dada una cadena de la forma:
"Numero-octal espacios operador espacios Numero-octal", elabore una expresión regular que almacene en $1 el primer número, en $2 el operador(sin espacios) y en $3 el segundo número. A continuación (fuera de la expresión regular) se deben escribir instrucciones en Perl para hacer la operación y escribir el resultado. Los operadores validos son:
=,-,*,/. Un número octal comienza por 0.
47.   Elabore una expresión regular que retire todos los caracteres númericos que existan en una cadena.
48.   Elabore una expresión regular que retire todos las letras que existan en una cadena.
49.   Elabore una expresión regular que almacene en el arreglo @a todas las palabras que comiencen por letra o por el caracter underline('_') en una cadena.
50.   Elabore una expresión regular que almacene en el arreglo @a todas las palabras escritas en minúsculas
51.   Elabore una expresión regular que calcule la suma de todos los números escritos en hexa, almacenados en una cadena. Por ejemplo:
"sume los numeros 0x5f,0x6a8,0xff".
Para esta cadena en una variable $contador se debería almacenar 2054 en decimal.
52.   Elabore una expresión regular que almacene en el arreglo @a todas las palabras escritas en mayúsculas
53.   Elabore una expresión regular que cuente el número de inflecciones del verbo "to be" que existan en una frase escrita en inglés.
54.   Dada una cadena de la forma:
"Numero-hexa operador Numero-hexa", elabore una expresión regular que almacene en $1 el primer número, en $2 el operador(sin espacios) y en $3 el segundo número. A continuación (fuera de la expresión regular) se deben escribir instrucciones en Perl para hacer la operación y escribir el resultado. Los operadores validos son:
=,-,*,/. Un número hexa comienza por 0x.
55.   Elabore una expresión regular que determine si la palabra 'si' existe 3 veces en un frase.
56.   Elabore una expresión regular que determine si la palabra 'no' existe entre 3 y 6 veces en un frase.
57.   Elabore una expresión regular que determine si la palabra 'bien' existe por lo menos 3 veces en un frase.
58.   Elabore una expresión regular que determine si la palabra 'bien' existe máximo 3 veces en un frase.
59.   Elabore una expresión regular que analice un cadena que esta definida así:
"nombre=NOMBRE,edad=EDAD,sueldo=SUELDO"
Donde NOMBRE, EDAD Y SUELDO son datos númericos. La expresión debe almacenar en $1,$2 y $3 los datos NOMBRE, EDAD Y SUELDO e imprimir esta información en la pantalla.
60.   Elabore una expresión regular que analice una cadena definida así: a=V1, b=V2, c=V3, d=V4 ....
Donde V1, V2, V3,.... son valores númericos. Existen un número indeterminado de valores. Elabore un ciclo while que escriba la sumatoria de todos los valores de la cadena.
61.   Elabore una expresión regular que analice una cadena definida así: a=V1, b=V2, c=V3, d=V4 ....
Donde V1, V2, V3,.... son valores númericos. Existen un número indeterminado de valores. Elabore un ciclo while que escriba la sumatoria de todos los últimos digitos de los valores de la cadena. Por ejemplo:
c=234, b=453, c=567
El resultado de la suma debe ser igual a 14.
62.   Elabore una expresión regular que analice una cadena definida así: a=V1, b=V2, c=V3, d=V4 ....
Donde V1, V2, V3,.... son valores númericos. Existen un número indeterminado de valores. Elabore un ciclo while que sustituya los valores V1,V2,V3,... por el número 300.
63.   Elabore una expresión regular que analice una cadena definida así: a=V1, b=V2, c=V3, d=V4 ....
Donde V1, V2, V3,.... son valores númericos. Existen un número indeterminado de valores. Elabore un ciclo while que permita almacenar en un arreglo @a todos los nombres de la variables que componen la cadena. Para el ejemplo los nombres almacenados serán a, b, c y d.
64.     Elabore una expresión regular que analice una cadena definida así: a=V1, b=V2, c=V3, d=V4 ....
Donde V1, V2, V3,.... son valores númericos. Existen un número indeterminado de valores. Elabore un ciclo while que permita sustituir los nombres de la variables por $var1,$var2,var3, .... Para el ejemplo la cadena despues de las sustituciones debe quedar así:
$var1=V1, $var2=V2, $var3=V3, $var4=V4....
65.   Elabore una expresión regular que analice una cadena definida así: a=V1, b=V2, c=V3, d=V4 ....
Donde V1, V2, V3,.... son valores númericos. Existen un número indeterminado de valores. Elabore un ciclo while que permita intercambiar dos datos. El valor asignado a la primera variable, se asigne a la última variable y el valor que se esta asignando a la última variable se asigne a la primera. Por ejemplo:
a=31, b=42, c=43, d=64
La cadena debe quedar con la siguiente información:
a=64, b=42, c=43, d=31
66.   Elabore una expresión regular que sustituya los números escritos en hexa por su correspondiente número en decimal. Para sustituir un solo número se puede utilizar el patrón:
$s= ~s/0x([0-9a-f]+)/hex $1/e;
67.   Elabore una expresión regular que convierta a mayúscula todas las letras l(ele) en una cadena.
68.   Elabore una expresión regular que convierta a mayúscula la primera letra de todas las palabras de una cadena
69.   Elabore una expresión regular que convierta a mayúscula la última letra de todas las palabras de una cadena
70.   Elabore una expresión regular que convierta a mayúscula todas las letras de una cadena. La cadena puede incluir caracteres no alfabeticos
71.   Elabore una expresión regular que convierta cada número escrito en hexa (por ejemplo '0xab') de una cadena a decimal. Por ejemplo, para la cadena "el tiene 0x22 aņos y ella tiene 0x1b", el resultado debe ser:
"el tiene 34 aņos y ella tiene 27".
Utilize el modificador 'e' y la función hex.(Favor estudiar el ejercicio 66).
72.   Elabore una expresión regular que convierta cada número decimal de una cadena a hexadecimal. Por ejemplo para la cadena "el tiene 34 aņos y ella tiene 27",
el resultado debe ser: "el tiene 22 aņos y ella tiene 1b".
Utilize el modificador 'e' y la instrucción sprintf. Por ejemplo, para cambiar un solo número podría utilizar el siguiente patrón: $s=~s/(\d+)/sprintf"%x", $1/e;