Please enable javascript to use this site.
Quitter.no closing 5th September 2018. Please read this notice. -A.
· OpenID

Message to users of quitter.no. I've decided to close this site on it's 4th birthday, that is 5th September -18. I do not have the energy and capacity to host the site anymore. Please "migrate" or find a new GNU Social home. I've decided to not handover the maintenance or data to anyone else - so please do not ask to get the data to host this site further. Thank you all for using Quitter this period and for following it's users. -A.

  1. Ricardo (rgb@quitter.no)'s status on Thursday, 19-Oct-2017 21:03:09 CEST Ricardo Ricardo
    In conversation from web

    Attachments

    1. File without filename could not get a thumbnail source.
      Más sobre el difícil arte de las expresiones regulares

      Esta vez va de números. Supongamos que queremos localizar en un documento Writer números entre 1 y 50, pero no mayores.

      La expresión

      \b\d\b

      encontrará números de un solo dígito desde 0 a 9. La expresión

      \b\d{1,2}\b

      encontrará números de uno o dos dígitos, desde el 0 hasta el 99… siempre que no tenga una letra pegada. Por ejemplo no encontrará el número en a29. Si queremos localizar el número a toda costa necesitamos algunas condiciones con las «look-ahead» y «Look-behind assertions» más la condición lógica «o» que se consigue con la barra vertical. Algo así

      (?<=[^\d]|^)\d{1,2}(?=[^\d]|$)

      Lo que busca esta expresión es uno o dos dígitos que se encuentran entre algo que no es ni un dígito ni un inicio de párrafo y otra cosa que tampoco es un dígito o un final de párrafo.

      Ya estamos más cerca. Para limitar el rango tendremos que aplicar un poco más de «selección»:

      (?<=[^\d]|^)([1-5]?\d)(?=[^\d]|$)

      ya busca entre 1 y 59, pero no 60 o mayores. ¡Ya estamos casi allí!

      Contemplad ahora la expresión definitiva:

      (?<=[^\d]|^)([1-4]?\d)(?=[^\d]|$)|50

      Dejo como ejercicio para el lector el interpretar la expresión. Eso sí, es altamente aconsejable repasar el capítulo sobre expresiones regulares de mi libro antes de intentarlo.


      Este interesante ejercicio de expresiones regulares se planteó hace unas semanas en la versión italiana de ask.libreoffice. Me llevó un buen rato el darme cuenta de cómo resolverlo… y aún más el recordar de dejarlo por escrito en el blog. Pero finalmente aquí está.