• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar al pie de página
logo web Geoinnova

Geoinnova

Consultoría y Formación en SIG y Medio Ambiente

  • Geoinnova
    • Asociación
    • Equipo
    • Visor de proyectos Geoinnova
    • Geolibrería
    • Alianzas Estratégicas
  • Consultoría
    • Consultoría y Desarrollo en Sistemas de Información Geográfica
    • Consultora Ambiental
    • Turismo sostenible
    • Planificación urbana y ordenación del territorio
    • Planes Urbanos de Actuación Municipal – PUAM
    • Geomarketing
  • Servicios
    • Planero Web
    • QElectricGIS
    • Plugins
  • Formación
    • Todos los cursos
    • Webinars
    • Máster y Diplomas
    • Cursos de ArcGIS
    • Cursos de QGIS
    • Cursos de Teledetección
    • Cursos de Medioambiente
  • Medio Ambiente
    • Consultora Ambiental
    • Estudios ambientales para proyectos de energías renovables
    • Estudios de Impacto e Integración Paisajística
    • Evaluación Ambiental Estratégica de planes y programas
    • Estudio de Impacto Ambiental para proyectos
    • Cálculo huella de carbono
    • Educación Ambiental
    • Cursos de Medioambiente
  • Coworking
  • Blog
    • SIG
    • Medio Ambiente
    • Teledetección
    • Programación y Desarrollo SIG
    • Corporativo
  • Contacto
    • Soporte de Clientes – Tickets
Programación y Desarrollo SIG

Uso de expresiones regulares en QGIS

24/02/2020 Deja un comentario

¿Qué son la expresiones regulares?

Las expresiones regulares son patrones utilizados para encontrar una determinada combinación de caracteres dentro de una cadena de texto. Su uso es frecuente en informática para la validación de datos en lenguajes de programación (Java, Python, JavaScript…), manejándolas dentro de la terminal de nuestro equipo o dentro de editores de texto por ejemplo para realizar búsquedas. Las expresiones regulares recurren de un conjunto de caracteres especiales que permiten construir el patrón a validar.

Existen gran cantidad de páginas web como por ejemplo regex101.com o regextester.com que nos ayudan a comprobar si nuestra expresión está buen formada y a realizar una batería de pruebas y identificando aquellas que cumplan. Realmente interesante es la página IHateRegex.io  que nos permite encontrar formular y visualizar la validación de las mismas mediante una imagen de flujo.

expresiones regulares
Ejemplo de expresión regular para email con IHateRegex

Expresión regular para validar referencias catastrales

Para poder ver el potencial del usos de expresiones regulares vamos a poner un ejemplo que revise el patrón de una referencia catastral de parcela.

Supongamos que tenemos una capa poligonal que representan un inventario de solares urbanos. En uno de sus campos debemos almacenar la referencia catastral según el modelo del catastro español. En primer lugar este campo ya debe contar con una primera restricción vinculada con el tipo de dato a almacenar (Texto / Cadena) y el número máximo de caracteres permitidos (14)  para parcelas catastrales.

Los 14 caracteres de una referencia catastral relativa a una parcela en España (ej. 9872023VH5797S)  se corresponden con:

  • 7 dígitos para la identificación de la finca (9872023)
  • 7 dígitos para la hoja del plano (VH5797S)

Si revisamos la referencia podemos observar que hay un patrón que se repite:

  • 7 números
  • 2 letras en mayúsculas
  • 4 dígitos
  • 1 letra en mayúscula que puede ser o N o S

La expresión regular de este patrón sería la siguiente:

^[0-9]{7}[A-Z]{2}[0-9]{4}[N|S]$

  • El carácter «^» representa el inicio de la cadena. De la misma forma el signo de dólar «$» representa el final. Por tanto, si se utiliza la expresión regular «^[0-9]» el sistema encontrará todos los párrafos que comiencen con números
  • [0-9]{7} Entre corchetes identificamos el tipo de caracteres permitidos, en este caso valores numéricos entre 0 y 9 y con llaves se indica el número de caracteres de esa agrupación en este caso 7.
  • [A-Z]{2} En el siguiente grupo son permitidas dos letras del abecedario en mayúscula .
  • [0-9]{4} Es igual al primer grupo de valores numéricos entre 0 y 9 y con llaves el número (4) de caracteres.
  • [N|S] Entre corchetes identificamos el tipo de caracteres permitidos, en este caso solo puede ser la letra mayúscula N o la letra mayúscula S
  • $ Representa el final de la cadena de caracteres. No representa un carácter en especial sino una posición.
expresión regular
Validación de ejemplo con IHateRegex

¿Cómo podemos usar las expresiones regulares en QGIS?

Dentro de QGIS contamos con la función regexp_match() cuyo uso nos va a permitir validar el valor de un campo según una expresión regular definida. El uso de esta función completa las posibilidades de aplicar restricciones a nuestros atributos que posee QGIS y  que comienzan con la definición propia del tipo dato a almacenar y la aplicación de controles de formularios. Puedes consultar la  entrada sobre uso restricciones y controles de formularios en QGIS donde desarrollamos más este tema.

Para añadir la validación del campo en QGIS mediante esta expresión regular realizamos los siguientes pasos:

  • Accedemos a Propiedades de nuestra capa
  • En la Pestaña Formularios de atributos seleccionamos el campo al que aplicar la expresión. En este caso nuestro campo se llama “refcat”
  • Después vamos al apartado Restricciones adjuntamos a No nula y en Forzar restricción no nula
  • Hacemos clic en el acceso a Expresiones y escribimos nuestra expresión válida usando la función regexp_match()

regexp_match(«refcat», ‘^[0-9]{7}[A-Z]{2}[0-9]{4}[N|S]$’)

expresiones regulares
Ventana de expresiones y uso de la función regexp_match()
  • Es interesante escribir una descripción sobre la restricción aplicada.
  • Una vez generada la expresión marcamos también la opción Forzar restricción de expresiones.

Al añadir una nueva geometría y completar nuestro formulario de datos el campo donde se ha generado la expresión estará forzado a que cumpla nuestra condición. QGIS nos ayuda a saber si se cumple la restricción mediante ayudas visuales en el formulario.

Autor: Patricio Soriano. 

Etiquetas: qgis

Apúntate a nuestra newsletter semanal

"*" señala los campos obligatorios

Consentimiento*
*
Este campo es un campo de validación y debe quedar sin cambios.

Información legal

Cumplimos el RGPD (Reglamenteo General de Protección de Datos) y esta en la primera información que debes saber. Responsable: Asociación Geoinnova. Finalidad: Apuntarte en nuestra base de datos para poder enviarte nuestra newsletter y cualquier otra información de interes. Legitimidad: Nos das tu consentimiento para comunicarnos contigo. Derechos: Tienes derecho a acceder, rectificar, limitar y suprimir tus datos. Para una información más ampliada entra a nuestra política de privacidad.

Artículos relacionados

Cómo instalar y agregar nuevas fuentes en QGIS
29/11/2022
Extraer valores ráster en QGIS
27/10/2022
Cómo instalar librerías python en PyQGIS
06/10/2022

Patricio Soriano

Geógrafo “Full-stack” y desarrollador web especializado en Tecnologías de Información Geográfica. Vinculado con la labor de consultoría, ha realizado diversos proyectos sobre análisis urbanístico, planes de vivienda y gestión patrimonial, así como la puesta en marcha de Sistemas de Información Geográfica corporativos para la administración pública. Dentro de los trabajos como desarrollador se encuentran el diseño de varias aplicaciones webmapping y desarrollos para QGIS (Spanish Inspire Catastral Downloader, CDAU Downloader o qgis2mapea). Autor del blog www.sigdeletras.com y organizador de Geoinquietos Córdoba. Actualmente se encuentra incorporado al equipo de desarrollo de Geoinnova en aplicaciones Open Source. Como docente lleva impartiendo cursos profesionales de SIG desde 2007 para diferentes entidades y en diferentes modalidades (tanto presencial como online). Especializándose en los últimos años en cursos de QGIS a distintos niveles.

Interacciones con los lectores

¿Quieres comentarnos algo? Adelante! Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Footer

Menú Legal

  • Aviso Legal
  • Política de privacidad
  • Política de cookies
  • Términos y condiciones

Otras páginas de interes

  • Promociones y descuentos en formación
  • Formación bonificada FUNDAE

Contacto

Calle Luis Morondo Urra nº 8 Bajo A
31006 Pamplona (Navarra)
info@geoinnova.org
+34 948 117 137

Horario de atención

Lunes a Viernes - 09:00 a 14:00 y de 16:00 a 19:00.
Fines de semana y Festivos - Exclusivamente por mail.
Horario de Verano (01 de julio al 30 de agosto): De lunes a viernes de 8 a 15h.
Entidad adherida a Confianza Online Certificado de inscripción en el Registro de huella de carbono, compensación y proyectos de absorción Logo Plazox

© 2023 · Desarrollada por Geoinnova en colaboración con OikosMSP

Gestionar el Consentimiento de las Cookies
Utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. Lo hacemos para mejorar la experiencia de navegación y para mostrar anuncios personalizados. El consentimiento a estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o las identificaciones únicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones.
Funcional Siempre activo
El almacenamiento o acceso técnico es estrictamente necesario para el propósito legítimo de permitir el uso de un servicio específico explícitamente solicitado por el abonado o usuario, o con el único propósito de llevar a cabo la transmisión de una comunicación a través de una red de comunicaciones electrónicas.
Preferencias
El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario.
Estadísticas
El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos. El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos anónimos. Sin una requerimiento, el cumplimiento voluntario por parte de su proveedor de servicios de Internet, o los registros adicionales de un tercero, la información almacenada o recuperada sólo para este propósito no se puede utilizar para identificarlo.
Marketing
El almacenamiento o acceso técnico es necesario para crear perfiles de usuario para enviar publicidad, o para rastrear al usuario en un sitio web o en varios sitios web con fines de marketing similares.
Administrar opciones Gestionar los servicios Gestionar proveedores Leer más sobre estos propósitos
Preferencias
{title} {title} {title}