SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
Programación en perl
 Introducción a expresiones regulares
¿Qué es una expresión
      regular?
Una expresión regular es una plantilla o
patrón que se compara con una cadena de
texto.

El resultado de esta comparación es que la
cadena de texto coincide o no coincide con
ese patrón.

No existe “coincide a medias” o “casi
coincide” o “esta parte sí pero esta otra no”
Ejemplo de uso
1.$_ = "yabba dabba doo";
2.if (/abba/) {
3.  say "¡Coincide!n";
4.}



       En perl, las expresiones regulares forman
       parte de la propia sintaxis del lenguaje

       Se evalúa el cuerpo del if si la secuencia
       ‘abba’ está en la cadena $_
Operadores


$string =~ /REGEXP/ -> devuelve verdadero
si la cadena coincide con el patrón

$string !~ /REGEXP/ -> devuelve falso si la
cadena coindice con el patrón
¿Cómo hay que leer un
      patrón?
 El patrón /abba/ no es “la palabra abba”.

 El motor de expresiones regulares interpreta
 el patrón como:

   un caracter a seguido de un caracter b
   seguido de un caracter b seguido de un
   caracter a
Cuantificadores
+ carácter precedente aparece 1 o más veces

   ejemplo: /a+lfonso/

* carácter precedente aparece 0 o más veces

   ejemplo /a*lfonso/

? carácter precedente aparece una o ninguna vez

   ejemplo /alfon?so/

{min,max} número mínimo y máximo de ocurrencias

   ejemplo /alfons{4,6}o/
. y []
. cualquier carácter distinto de n

   ejemplo /a.*lfonso/

   ¿qué ocurre si aplicamos el patrón a la siguiente cadena:
   akksdffonsofonso?

[ ]! lista de opciones

   ejemplo /[aA]lfons[oO]/

   Admite rangos [a-z] [A-Z] [0-9]

   Si queremos incluir el - tenemos que ponerlo al principio

       [-aeiou]
[^ ]


[^ ] exclusión:

   /b[^aeiouAEIOU]/ primer carácter de
  una palabra siempre que este caracter no
  sea a, e, i, o, u, A, E, I, O, U.
Escapado


Si queremos incluir en el patrón alguno de
los caracteres anteriores, hay que escaparlos

  /www.google.com/
Posiciones
b límite de palabra (espacio, tabuladores, puntos,
comas, guiones, principio y fin de línea, etc)

  /[aA]lfo?nsob/

B no debe haber un límite de palabra

  /Bola/

^ principio de cadena

$ fin de cadena
Posiciones
Dada la cadena:

Este es un curso de perl.

¿Qué patrón dará una coincidencia positiva?

  perlb

  perlb$

  perlb.$
()

Se utilizan para agrupar partes de un
patrón.

  /pepe+/ encajaría con pepeeeeeee

  /(pepe)+/ encajaría con pepepepepepe

Cuidado con /(pepe)*/ esto encajaría con
cualquier patrón
()
Los paréntesis permiten reutilizar parte de la cadena coincidente dentro
de la propia expresión regular:

    /(.)1/ encuentra cualquier carácter que vaya seguido de sí mismo.

Se pueden poner varios paréntesis dentro de una misma expresión
regular.

Perl los asignará a las referencias 1, 2, 3, etc según su orden de
apertura ignorando la anidación.

    /(OS ([Xx]) (.+))/ aplicado a la cadena OS X Lion

        1 ->OS X Lion

        2 -> X

        3 -> Lion
()
A partir de perl 5.10 es posible hacer referencia a un grupo
usando la notación g{N}

   1 -> g{1}

Supongamos qué tenemos el siguiente patrón:

   /(.)111/ y la cadena aa11bb

   Perlo no sabe si estamos diciendo 1 seguido de 11 o 11
   seguido de 1 o 111

Para esto se utiliza la nueva notación

   /(.)g{1}11/
Alternativa: |


/luis|angel|pepe/ ->encajaría con cualquier
cadena que contuviese luis o angel o pepe.

/Luis (y|o) Miguel/
Clases de caracteres

d números

s espacio, form-feed, tabulador, nueva línea
y retorno de carro.

R (perl 5.10) cualquier tipo de salto de línea
(no tenemos que preocuparnos por el formato
de fichero, sistema operativo, etc)

w caracteres [a-zA-Z0-9_]
Opciones
/PATRON/OPCIONES

  i no diferencia entra mayúsculas y minúsculas
  /pepe/i coincidiría con Pepe, pepe, PePe, PEPE

  s hace que . también incluya el salto de línea

  x hace que se ignoren espacios, tabuladores,
  comentarios y saltos de línea en la expresión
  regular:
  /
       [0-9]+   # Esto es un comentario
       [#]      # el caracter “#”
  /x
Variables especiales

$1, $2, $3 -> contienen la parte del patrón
encerrada en su respectivo paréntesis

$& patrón encontrado

$` lo que precedía al patrón encontrado

$’ lo que sucede al patrón encontrado
Ejercicios
¿qué patrón usarías para localizar una página web como
www.protrainning.com, mail.yahoo.com, etc?

Utilizando el fichero last.txt:

   calcular todas las veces que se ha reiniciado el
   ordenador en el mes de noviembre

   evaluar las veces que Alfonso ha entrado más tarde de
   las 8 y si supera las 5 veces, avisar de que es un vago.

   Calcular la hora mínima y máxima a la que root ha
   accedido y el tiempo que ha estado activo.
Buscar y reemplazar
s/REGEXP/SUSTITUTO/opciones

Opciones:

  i !ignora mayúsculas y minúsculas

  g!busca y sustituye todas las ocurrencias

  e!considera SUSTITUTO una expresión y la
  evalúa

     s/d{3,8}/9*9/e -> sustituye 456 por 81
Ejemplos de patrones



Localizar variables en un script perl

  mys+[$@%][a-zA-Z][a-zA-Z_]*b
Ejemplos de patrones
Localizar una IP:

   Es importante saber qué buscamos para definir nuestra
   expresión regular

   ¿nos vale este patrón d{1,3}.d{1,3}.d{1,3}.d{1,3}

   Depende, ya que este patrón encuentra 999.999.999.999 que
   no es una IP válida

   Podemos capturar cada número en $1, $2, $3, $4 y validarlo a
   posteriori

   Podemos utilizar este patrón
   [01]?d?d|2[0-4]d|25[0-5] . [01]?d?d|2[0-4]d|25[0-5] .
   [01]?d?d|2[0-4]d|25[0-5] . [01]?d?d|2[0-4]d|25[0-5]
Ejemplos de patrones
Localizar números en coma flotante

     primer intento:!   [-+]?[0-9]*.?[0-9]*

MALO: ENCAJA CON CUALQUIER CADENA YA QUE TODOS LOS CARACTERES SON OPCIONALES

     segundo intento:: lo que es opcional es el decimal y los números siguientes, debe haber al
     menos un número

     [-+]?[0-9]+(.[0-9]*)?

     tercer intento: falta que encuentre números como .0098

          lo hacemos utilizando un or

          [-+]?[0-9]+(.[0-9]*)?|[-+]?(.[0-9]+)

          Sigue sin funcionar ya que va a encontrar, por ejemplo 123.1234.1234

          Si esta expresión regular es buena o no dependerá del contexto

     Cuarto intento
     s[-+]?[0-9]+(.[0-9]*)?|[-+]?(.[0-9]+)s
“looking around”
(?=...) -> mira hacia la derecha

(?<= ... ) -> mira hacia la izquierda

ejemplo /alf(?=onso)/ -> sólo encuentra la cadena “alf” si esta va seguida de “onso”

Estos operadores no consumen texto

     ejemplo /(alf(?=onso)|onso)/

     Sirven para encontrar posiciones:

          Supongamos que tenemos un texto en el que hay muchos “alfono” en
          lugar de alfonso.

          Podríamos utilizar la siguiente expresión para corregir el error:
          s/(?<=alfon)(?=ob)/s/g

Ejercicio: dado un número 1234123 meter los separadores de miles, es decir,
reescribir el número como 1.234.123
Ejercicios
Utilizando el fichero error.log.1.
Con objeto de enviar este fichero a una lista
de correo pública, se desea lo siguiente:

  Sustituir las direcciones IP por
  XXX.XXX.XXX.XXX

  Sustituir las versiones de los programas
  Apache, mod_jk, mod_ssl y open_ssl ! por
  la cadena ---obfuscated for security---

Weitere ähnliche Inhalte

Was ist angesagt?

tutorial y Guia de fundamentos drscheme
tutorial y Guia de fundamentos drschemetutorial y Guia de fundamentos drscheme
tutorial y Guia de fundamentos drschemeHospital de Yumbo
 
Expresiones regulares edward
Expresiones regulares edwardExpresiones regulares edward
Expresiones regulares edwardEdward Larez
 
Juan carlos scrip
Juan carlos scripJuan carlos scrip
Juan carlos scripjuanka1395
 
Ejercicios evaluados i. shearly achji y ricardo ros. estructuras de datos i. ...
Ejercicios evaluados i. shearly achji y ricardo ros. estructuras de datos i. ...Ejercicios evaluados i. shearly achji y ricardo ros. estructuras de datos i. ...
Ejercicios evaluados i. shearly achji y ricardo ros. estructuras de datos i. ...Ricardo Ros
 
Chuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesChuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesAbrirllave
 
Lenguaje de programación c
Lenguaje de programación cLenguaje de programación c
Lenguaje de programación cvictdiazm
 
Introduccion matlab
Introduccion matlabIntroduccion matlab
Introduccion matlabgrupo6eda
 
Funcion si m
Funcion si mFuncion si m
Funcion si mjt527
 
Analisis sintactico10
Analisis sintactico10Analisis sintactico10
Analisis sintactico10Emanuel Gs
 

Was ist angesagt? (19)

Transformada de Laplace
Transformada de LaplaceTransformada de Laplace
Transformada de Laplace
 
Introducción a dr racket
Introducción a dr racketIntroducción a dr racket
Introducción a dr racket
 
Programación Funcional con Scheme
Programación Funcional con SchemeProgramación Funcional con Scheme
Programación Funcional con Scheme
 
Maple v comandos
Maple v comandosMaple v comandos
Maple v comandos
 
tutorial y Guia de fundamentos drscheme
tutorial y Guia de fundamentos drschemetutorial y Guia de fundamentos drscheme
tutorial y Guia de fundamentos drscheme
 
PSEUDOCODIGO
 PSEUDOCODIGO PSEUDOCODIGO
PSEUDOCODIGO
 
Expresiones regulares edward
Expresiones regulares edwardExpresiones regulares edward
Expresiones regulares edward
 
Excel funcionesbasicas-100130150120-phpapp01
Excel funcionesbasicas-100130150120-phpapp01Excel funcionesbasicas-100130150120-phpapp01
Excel funcionesbasicas-100130150120-phpapp01
 
Juan carlos scrip
Juan carlos scripJuan carlos scrip
Juan carlos scrip
 
Ejercicios evaluados i. shearly achji y ricardo ros. estructuras de datos i. ...
Ejercicios evaluados i. shearly achji y ricardo ros. estructuras de datos i. ...Ejercicios evaluados i. shearly achji y ricardo ros. estructuras de datos i. ...
Ejercicios evaluados i. shearly achji y ricardo ros. estructuras de datos i. ...
 
Chuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesChuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantes
 
Arreglos en c++2020
Arreglos en c++2020Arreglos en c++2020
Arreglos en c++2020
 
Lenguaje de programación c
Lenguaje de programación cLenguaje de programación c
Lenguaje de programación c
 
Visual Basic 6.0 Parte 1/2
Visual Basic 6.0 Parte 1/2Visual Basic 6.0 Parte 1/2
Visual Basic 6.0 Parte 1/2
 
Introduccion matlab
Introduccion matlabIntroduccion matlab
Introduccion matlab
 
Manual de funciones
Manual de funcionesManual de funciones
Manual de funciones
 
Funcion si m
Funcion si mFuncion si m
Funcion si m
 
Analisis sintactico10
Analisis sintactico10Analisis sintactico10
Analisis sintactico10
 
Python04
Python04Python04
Python04
 

Andere mochten auch

Lenguajes regulares
Lenguajes regularesLenguajes regulares
Lenguajes regularesKenia Adams
 
Expresiones regulares y gramáticas
Expresiones regulares y gramáticasExpresiones regulares y gramáticas
Expresiones regulares y gramáticasSantiago Ramirez
 
(Sin soluiciones) s3 afnd y afd
(Sin soluiciones) s3   afnd y afd(Sin soluiciones) s3   afnd y afd
(Sin soluiciones) s3 afnd y afddwonga
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regularesJordan-P
 
Expresiones regulares y gramaticas
Expresiones regulares y gramaticasExpresiones regulares y gramaticas
Expresiones regulares y gramaticasRobin Pena
 
Lenguajes Regulares.
Lenguajes Regulares.Lenguajes Regulares.
Lenguajes Regulares.guestdf1874
 
Lenguajes Regulares y Autómatas Finitos - Clase 6
Lenguajes Regulares y Autómatas Finitos - Clase 6Lenguajes Regulares y Autómatas Finitos - Clase 6
Lenguajes Regulares y Autómatas Finitos - Clase 6UTN-FRT Tucumán Argentina
 
Expresiones regulares y gramáticas
Expresiones regulares y gramáticasExpresiones regulares y gramáticas
Expresiones regulares y gramáticasJuanchi Novas
 
Clase4: Transformación desde Expresión regular a Autómata finito determinista
Clase4: Transformación desde Expresión regular a Autómata finito deterministaClase4: Transformación desde Expresión regular a Autómata finito determinista
Clase4: Transformación desde Expresión regular a Autómata finito deterministamvagila
 

Andere mochten auch (9)

Lenguajes regulares
Lenguajes regularesLenguajes regulares
Lenguajes regulares
 
Expresiones regulares y gramáticas
Expresiones regulares y gramáticasExpresiones regulares y gramáticas
Expresiones regulares y gramáticas
 
(Sin soluiciones) s3 afnd y afd
(Sin soluiciones) s3   afnd y afd(Sin soluiciones) s3   afnd y afd
(Sin soluiciones) s3 afnd y afd
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
 
Expresiones regulares y gramaticas
Expresiones regulares y gramaticasExpresiones regulares y gramaticas
Expresiones regulares y gramaticas
 
Lenguajes Regulares.
Lenguajes Regulares.Lenguajes Regulares.
Lenguajes Regulares.
 
Lenguajes Regulares y Autómatas Finitos - Clase 6
Lenguajes Regulares y Autómatas Finitos - Clase 6Lenguajes Regulares y Autómatas Finitos - Clase 6
Lenguajes Regulares y Autómatas Finitos - Clase 6
 
Expresiones regulares y gramáticas
Expresiones regulares y gramáticasExpresiones regulares y gramáticas
Expresiones regulares y gramáticas
 
Clase4: Transformación desde Expresión regular a Autómata finito determinista
Clase4: Transformación desde Expresión regular a Autómata finito deterministaClase4: Transformación desde Expresión regular a Autómata finito determinista
Clase4: Transformación desde Expresión regular a Autómata finito determinista
 

Ähnlich wie ExpReg PERL titulo

RegExp JavaScript Expresiones Regulares
RegExp JavaScript Expresiones RegularesRegExp JavaScript Expresiones Regulares
RegExp JavaScript Expresiones RegularesIsabel Gómez
 
Contenido científic2 OPERADORES Y REFERENCIAS DE CELDAS
Contenido científic2 OPERADORES Y REFERENCIAS DE CELDASContenido científic2 OPERADORES Y REFERENCIAS DE CELDAS
Contenido científic2 OPERADORES Y REFERENCIAS DE CELDASINFORGRA
 
Aprendiendo php my sql, javascript, css, html5 capitulo 4 expresiones y contr...
Aprendiendo php my sql, javascript, css, html5 capitulo 4 expresiones y contr...Aprendiendo php my sql, javascript, css, html5 capitulo 4 expresiones y contr...
Aprendiendo php my sql, javascript, css, html5 capitulo 4 expresiones y contr...luigiacarigua
 
Manual php lec13.validacion_de_formularios
Manual php lec13.validacion_de_formulariosManual php lec13.validacion_de_formularios
Manual php lec13.validacion_de_formulariosPedro Ruiz
 
Perl (practical extraction and report language)
Perl (practical extraction and report language)Perl (practical extraction and report language)
Perl (practical extraction and report language)Oliver Centeno
 
Comando grep y expresiones regulares
Comando grep y expresiones regularesComando grep y expresiones regulares
Comando grep y expresiones regularesPablo Macon
 
Tema 11 expresiones regulares en java por gio
Tema 11   expresiones regulares en java por gioTema 11   expresiones regulares en java por gio
Tema 11 expresiones regulares en java por gioRobert Wolf
 
Java script teoria
Java script teoriaJava script teoria
Java script teoriassxdan
 
Cheat Sheet: Expresiones regulares para analistas
Cheat Sheet: Expresiones regulares para analistasCheat Sheet: Expresiones regulares para analistas
Cheat Sheet: Expresiones regulares para analistasAukera
 
PresentacióN 4
PresentacióN 4PresentacióN 4
PresentacióN 4pokerpc
 
Comando grep y expresiones regulares
Comando grep y expresiones regularesComando grep y expresiones regulares
Comando grep y expresiones regularesMadelón García
 

Ähnlich wie ExpReg PERL titulo (20)

Clase 10 expresiones regulares
Clase 10 expresiones regularesClase 10 expresiones regulares
Clase 10 expresiones regulares
 
RegExp JavaScript Expresiones Regulares
RegExp JavaScript Expresiones RegularesRegExp JavaScript Expresiones Regulares
RegExp JavaScript Expresiones Regulares
 
Contenido científic2 OPERADORES Y REFERENCIAS DE CELDAS
Contenido científic2 OPERADORES Y REFERENCIAS DE CELDASContenido científic2 OPERADORES Y REFERENCIAS DE CELDAS
Contenido científic2 OPERADORES Y REFERENCIAS DE CELDAS
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
 
Aprendiendo php my sql, javascript, css, html5 capitulo 4 expresiones y contr...
Aprendiendo php my sql, javascript, css, html5 capitulo 4 expresiones y contr...Aprendiendo php my sql, javascript, css, html5 capitulo 4 expresiones y contr...
Aprendiendo php my sql, javascript, css, html5 capitulo 4 expresiones y contr...
 
Intro a ruby
Intro a rubyIntro a ruby
Intro a ruby
 
Manual php lec13.validacion_de_formularios
Manual php lec13.validacion_de_formulariosManual php lec13.validacion_de_formularios
Manual php lec13.validacion_de_formularios
 
Tutorial de php
Tutorial de phpTutorial de php
Tutorial de php
 
Programación con sql
Programación con sqlProgramación con sql
Programación con sql
 
Perl (practical extraction and report language)
Perl (practical extraction and report language)Perl (practical extraction and report language)
Perl (practical extraction and report language)
 
Kelly
KellyKelly
Kelly
 
Comando grep y expresiones regulares
Comando grep y expresiones regularesComando grep y expresiones regulares
Comando grep y expresiones regulares
 
Tema 11 expresiones regulares en java por gio
Tema 11   expresiones regulares en java por gioTema 11   expresiones regulares en java por gio
Tema 11 expresiones regulares en java por gio
 
Java script teoria
Java script teoriaJava script teoria
Java script teoria
 
Cheat Sheet: Expresiones regulares para analistas
Cheat Sheet: Expresiones regulares para analistasCheat Sheet: Expresiones regulares para analistas
Cheat Sheet: Expresiones regulares para analistas
 
PresentacióN 4
PresentacióN 4PresentacióN 4
PresentacióN 4
 
Curso Bash 3
Curso Bash 3Curso Bash 3
Curso Bash 3
 
Arreglos
ArreglosArreglos
Arreglos
 
Comando grep y expresiones regulares
Comando grep y expresiones regularesComando grep y expresiones regulares
Comando grep y expresiones regulares
 
Perl1 escalares
Perl1 escalaresPerl1 escalares
Perl1 escalares
 

Mehr von Alfonso Alba

Bienvenido a la republica independiente de las pruebas unitarias con Core Data
Bienvenido a la republica independiente de las pruebas unitarias con Core DataBienvenido a la republica independiente de las pruebas unitarias con Core Data
Bienvenido a la republica independiente de las pruebas unitarias con Core DataAlfonso Alba
 
Persistencia de datos con Parse
Persistencia de datos con ParsePersistencia de datos con Parse
Persistencia de datos con ParseAlfonso Alba
 
Plantillajornadasversion2 100708010347-phpapp01
Plantillajornadasversion2 100708010347-phpapp01Plantillajornadasversion2 100708010347-phpapp01
Plantillajornadasversion2 100708010347-phpapp01Alfonso Alba
 

Mehr von Alfonso Alba (9)

Bienvenido a la republica independiente de las pruebas unitarias con Core Data
Bienvenido a la republica independiente de las pruebas unitarias con Core DataBienvenido a la republica independiente de las pruebas unitarias con Core Data
Bienvenido a la republica independiente de las pruebas unitarias con Core Data
 
Persistencia de datos con Parse
Persistencia de datos con ParsePersistencia de datos con Parse
Persistencia de datos con Parse
 
Usuarios ipad
Usuarios ipadUsuarios ipad
Usuarios ipad
 
Git
GitGit
Git
 
Perl5 hashes
Perl5 hashesPerl5 hashes
Perl5 hashes
 
Perl2 arrays
Perl2 arraysPerl2 arrays
Perl2 arrays
 
Perl3 subrutinas
Perl3 subrutinasPerl3 subrutinas
Perl3 subrutinas
 
Perl4 io
Perl4 ioPerl4 io
Perl4 io
 
Plantillajornadasversion2 100708010347-phpapp01
Plantillajornadasversion2 100708010347-phpapp01Plantillajornadasversion2 100708010347-phpapp01
Plantillajornadasversion2 100708010347-phpapp01
 

Kürzlich hochgeladen

Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
CLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfCLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfJonathanCovena1
 

Kürzlich hochgeladen (20)

Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
CLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdfCLASE - La visión y misión organizacionales.pdf
CLASE - La visión y misión organizacionales.pdf
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 

ExpReg PERL titulo

  • 1. Programación en perl Introducción a expresiones regulares
  • 2. ¿Qué es una expresión regular? Una expresión regular es una plantilla o patrón que se compara con una cadena de texto. El resultado de esta comparación es que la cadena de texto coincide o no coincide con ese patrón. No existe “coincide a medias” o “casi coincide” o “esta parte sí pero esta otra no”
  • 3. Ejemplo de uso 1.$_ = "yabba dabba doo"; 2.if (/abba/) { 3.  say "¡Coincide!n"; 4.} En perl, las expresiones regulares forman parte de la propia sintaxis del lenguaje Se evalúa el cuerpo del if si la secuencia ‘abba’ está en la cadena $_
  • 4. Operadores $string =~ /REGEXP/ -> devuelve verdadero si la cadena coincide con el patrón $string !~ /REGEXP/ -> devuelve falso si la cadena coindice con el patrón
  • 5. ¿Cómo hay que leer un patrón? El patrón /abba/ no es “la palabra abba”. El motor de expresiones regulares interpreta el patrón como: un caracter a seguido de un caracter b seguido de un caracter b seguido de un caracter a
  • 6. Cuantificadores + carácter precedente aparece 1 o más veces ejemplo: /a+lfonso/ * carácter precedente aparece 0 o más veces ejemplo /a*lfonso/ ? carácter precedente aparece una o ninguna vez ejemplo /alfon?so/ {min,max} número mínimo y máximo de ocurrencias ejemplo /alfons{4,6}o/
  • 7. . y [] . cualquier carácter distinto de n ejemplo /a.*lfonso/ ¿qué ocurre si aplicamos el patrón a la siguiente cadena: akksdffonsofonso? [ ]! lista de opciones ejemplo /[aA]lfons[oO]/ Admite rangos [a-z] [A-Z] [0-9] Si queremos incluir el - tenemos que ponerlo al principio [-aeiou]
  • 8. [^ ] [^ ] exclusión: /b[^aeiouAEIOU]/ primer carácter de una palabra siempre que este caracter no sea a, e, i, o, u, A, E, I, O, U.
  • 9. Escapado Si queremos incluir en el patrón alguno de los caracteres anteriores, hay que escaparlos /www.google.com/
  • 10. Posiciones b límite de palabra (espacio, tabuladores, puntos, comas, guiones, principio y fin de línea, etc) /[aA]lfo?nsob/ B no debe haber un límite de palabra /Bola/ ^ principio de cadena $ fin de cadena
  • 11. Posiciones Dada la cadena: Este es un curso de perl. ¿Qué patrón dará una coincidencia positiva? perlb perlb$ perlb.$
  • 12. () Se utilizan para agrupar partes de un patrón. /pepe+/ encajaría con pepeeeeeee /(pepe)+/ encajaría con pepepepepepe Cuidado con /(pepe)*/ esto encajaría con cualquier patrón
  • 13. () Los paréntesis permiten reutilizar parte de la cadena coincidente dentro de la propia expresión regular: /(.)1/ encuentra cualquier carácter que vaya seguido de sí mismo. Se pueden poner varios paréntesis dentro de una misma expresión regular. Perl los asignará a las referencias 1, 2, 3, etc según su orden de apertura ignorando la anidación. /(OS ([Xx]) (.+))/ aplicado a la cadena OS X Lion 1 ->OS X Lion 2 -> X 3 -> Lion
  • 14. () A partir de perl 5.10 es posible hacer referencia a un grupo usando la notación g{N} 1 -> g{1} Supongamos qué tenemos el siguiente patrón: /(.)111/ y la cadena aa11bb Perlo no sabe si estamos diciendo 1 seguido de 11 o 11 seguido de 1 o 111 Para esto se utiliza la nueva notación /(.)g{1}11/
  • 15. Alternativa: | /luis|angel|pepe/ ->encajaría con cualquier cadena que contuviese luis o angel o pepe. /Luis (y|o) Miguel/
  • 16. Clases de caracteres d números s espacio, form-feed, tabulador, nueva línea y retorno de carro. R (perl 5.10) cualquier tipo de salto de línea (no tenemos que preocuparnos por el formato de fichero, sistema operativo, etc) w caracteres [a-zA-Z0-9_]
  • 17. Opciones /PATRON/OPCIONES i no diferencia entra mayúsculas y minúsculas /pepe/i coincidiría con Pepe, pepe, PePe, PEPE s hace que . también incluya el salto de línea x hace que se ignoren espacios, tabuladores, comentarios y saltos de línea en la expresión regular: / [0-9]+ # Esto es un comentario [#] # el caracter “#” /x
  • 18. Variables especiales $1, $2, $3 -> contienen la parte del patrón encerrada en su respectivo paréntesis $& patrón encontrado $` lo que precedía al patrón encontrado $’ lo que sucede al patrón encontrado
  • 19. Ejercicios ¿qué patrón usarías para localizar una página web como www.protrainning.com, mail.yahoo.com, etc? Utilizando el fichero last.txt: calcular todas las veces que se ha reiniciado el ordenador en el mes de noviembre evaluar las veces que Alfonso ha entrado más tarde de las 8 y si supera las 5 veces, avisar de que es un vago. Calcular la hora mínima y máxima a la que root ha accedido y el tiempo que ha estado activo.
  • 20. Buscar y reemplazar s/REGEXP/SUSTITUTO/opciones Opciones: i !ignora mayúsculas y minúsculas g!busca y sustituye todas las ocurrencias e!considera SUSTITUTO una expresión y la evalúa s/d{3,8}/9*9/e -> sustituye 456 por 81
  • 21. Ejemplos de patrones Localizar variables en un script perl mys+[$@%][a-zA-Z][a-zA-Z_]*b
  • 22. Ejemplos de patrones Localizar una IP: Es importante saber qué buscamos para definir nuestra expresión regular ¿nos vale este patrón d{1,3}.d{1,3}.d{1,3}.d{1,3} Depende, ya que este patrón encuentra 999.999.999.999 que no es una IP válida Podemos capturar cada número en $1, $2, $3, $4 y validarlo a posteriori Podemos utilizar este patrón [01]?d?d|2[0-4]d|25[0-5] . [01]?d?d|2[0-4]d|25[0-5] . [01]?d?d|2[0-4]d|25[0-5] . [01]?d?d|2[0-4]d|25[0-5]
  • 23. Ejemplos de patrones Localizar números en coma flotante primer intento:! [-+]?[0-9]*.?[0-9]* MALO: ENCAJA CON CUALQUIER CADENA YA QUE TODOS LOS CARACTERES SON OPCIONALES segundo intento:: lo que es opcional es el decimal y los números siguientes, debe haber al menos un número [-+]?[0-9]+(.[0-9]*)? tercer intento: falta que encuentre números como .0098 lo hacemos utilizando un or [-+]?[0-9]+(.[0-9]*)?|[-+]?(.[0-9]+) Sigue sin funcionar ya que va a encontrar, por ejemplo 123.1234.1234 Si esta expresión regular es buena o no dependerá del contexto Cuarto intento s[-+]?[0-9]+(.[0-9]*)?|[-+]?(.[0-9]+)s
  • 24. “looking around” (?=...) -> mira hacia la derecha (?<= ... ) -> mira hacia la izquierda ejemplo /alf(?=onso)/ -> sólo encuentra la cadena “alf” si esta va seguida de “onso” Estos operadores no consumen texto ejemplo /(alf(?=onso)|onso)/ Sirven para encontrar posiciones: Supongamos que tenemos un texto en el que hay muchos “alfono” en lugar de alfonso. Podríamos utilizar la siguiente expresión para corregir el error: s/(?<=alfon)(?=ob)/s/g Ejercicio: dado un número 1234123 meter los separadores de miles, es decir, reescribir el número como 1.234.123
  • 25. Ejercicios Utilizando el fichero error.log.1. Con objeto de enviar este fichero a una lista de correo pública, se desea lo siguiente: Sustituir las direcciones IP por XXX.XXX.XXX.XXX Sustituir las versiones de los programas Apache, mod_jk, mod_ssl y open_ssl ! por la cadena ---obfuscated for security---

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. Este operador s&amp;#xF3;lo encuentra la primera ocurrencia del patr&amp;#xF3;n. Luego veremos c&amp;#xF3;mo hacemos para encontrar todas las ocurrencias en la cadena.\n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. Aparte de caracteres, los patrones tambi&amp;#xE9;n pueden encontrar posiciones determinadas\n\nver guion posiciones.pl\n
  11. ver guion posiciones.pl\n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n