24 votos

Uso de la función reemplazar cadena en la calculadora de campo de QGIS?

Dentro de una tabla de atributos estoy intentando sustituir una cadena por otra utilizando la función 'replace' . Por ejemplo, hay una serie de características cuyo campo 'NAME' contiene la cadena '(B)' y quiero sustituirla por la palabra 'County'. Selecciono la casilla "actualizar campo existente" y utilizo la siguiente expresión

 replace( '(B)','(B)','County')

El resultado final es que el campo "NOMBRE" de cada elemento se sustituye por "Condado", independientemente de si el campo "NOMBRE" contenía o no originalmente la cadena "(B)".

37voto

tobes Puntos 19
replace( '(B)','(B)','County')

indica a QGIS que sustituya la '(B)' de '(B)' por 'País'.

Quieres

replace("Name",'(B)','Country')

\= sustituye la "(B)" de "Nombre" por "País".

Tenga en cuenta que el las comillas dobles indican un nombre de campo mientras que el las comillas simples se refieren a una cadena estática . No son intercambiables.

12voto

Gummy Puntos 86

La sintaxis correcta es replace([field_name], '(B)', 'Country')

5voto

Brian Hawkins Puntos 1037

En primer lugar, abra la calculadora de campos y seleccione la función de sustitución de la cadena o enter image description here pción como la siguiente imagen:

En segundo lugar, indica a QGIS que sustituya el replace ("Nombre de campo",'(B)','País'). Por ejemplo en este caso; replace ("MES_TIP", 'T', 'Rock'):

En tercer lugar, elija el tipo de campo de salida: texto(cadena) y, a continuación, determine el nombre del campo; enter image description here

1voto

miannelle Puntos 713

La interfaz es ahora un poco diferente y hay que seleccionar la columna en el menú desplegable de la izquierda. nombre abc

También he observado que las palabras entre comillas simples deben ser exactas, sin espacios adicionales. (lo que me dejó perplejo brevemente)

En este ejemplo he sustituido la palabra Road por Rd.

replace( "name", 'Road', 'Rd.' ) 

Pulse Actualizar filtrado para realizar el cambio. Puede tardar un rato... como le pasó a este archivo OSM.

Filtrar una tabla enorme ayudaría a acelerar el proceso de sustitución.

enter image description here

1voto

JanH Puntos 1

También hay un pequeño plugin disponible ahora, que envuelve regex_replace en una pequeña interfaz gráfica de usuario:

Buscar/reemplazar campos

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X