14 Procurar e substituir
Para substituir especificamente dados num campo de atributos, pode utilizar a função regexp_replace()
na calculadora de campos do QGIS. Esta função permite-lhe procurar padrões de texto num campo e substituí-los por novo texto. Tanto os termos simples como as expressões regulares podem ser utilizados para efetuar substituições complexas.
Sintaxe:
regexp_replace("Feldname", 'Suchmuster', 'Ersatztext')
"Nome do campo"
: o campo de atributo no qual deve ser efectuada a substituição."Padrão de pesquisa"
: O termo ou padrão de texto que pretende substituir. Pode ser um texto simples ou uma expressão regular."Texto de substituição"
: o texto que deve substituir o termo ou padrão encontrado.
Exemplo:
Se quiser substituir o termo Term1
por Term2
num campo de atributo chamado “Nome do campo”, a expressão é a seguinte:
regexp_replace("Feldname", 'Begriff1', 'Begriff2')
Neste exemplo, a função procura ocorrências do termo1
em cada registo de dados do campo “Nome do campo” e substitui-o pelo termo2
.
Exemplo de aplicação:
Suponha que o campo de atributo “Nome do campo” contém uma lista de espécies de árvores e pretende substituir todas as ocorrências do termo “carvalho” por “faia”. A expressão na calculadora do campo teria então o seguinte aspeto:
regexp_replace("Feldname", 'Eiche', 'Buche')
Após a execução, todas as entradas que contenham o termo “carvalho” são automaticamente substituídas por “faia”.
Vantagens de regexp_replace()
:
- Flexibilidade: Para além de termos simples, também pode definir padrões de texto complexos utilizando expressões regulares para captar padrões específicos ou recorrentes.
- Precisão: Ao utilizar expressões regulares, pode garantir que apenas as ocorrências pretendidas são substituídas.
- Automatização: A função pode ser utilizada para todos os registos de dados num campo de atributos ao mesmo tempo, tornando desnecessários os ajustes manuais.
Note:
Se apenas quiser substituir termos simples sem utilizar expressões regulares, também pode utilizar a função replace()
, que é mais direta para esses casos. A expressão seria então parecida com esta:
replace("Feldname", 'Begriff1', 'Begriff2')
No entanto, a função regexp_replace()
oferece mais opções, uma vez que reconhece e altera padrões e estruturas de texto complexas.