Skip to content

Commit

Permalink
add esempio
Browse files Browse the repository at this point in the history
  • Loading branch information
pigreco committed Feb 17, 2023
1 parent 8f2bd4f commit fb33ae7
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 0 deletions.
47 changes: 47 additions & 0 deletions docs/esempi/estrarre_numeri_iniziali.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
tags:
- ricerca
- caratteri
- regex
- array
---

# Estrarre i numeri iniziali

[Domanda](https://t.me/Postgres_PostGIS_IT/378) posta su un gruppo telegram:

Buona sera, chiedo qualche dritta sulle regexp in PG:

Ho una tabella con un campo di tipo text, che contiene informazioni sul numero di tubi e diametri a mo' di etichetta statica,
vorrei estrarre solo la quantità, e listarla a modo di array, come faccio?

es.
```
'1TØ50' --> atteso: [1]
'3TØ120 + 8TØ60' --> atteso: [3, 8]
'5TØ30 + 7TØ60 + 12TØ25' --> atteso: [5, 7, 12]
```

## soluzione

```
array_foreach(
string_to_array("tubi",' + '),
regexp_replace(@element,'(\\d+)(.+)','\\1')
)
```

la prima parte dell'espressione crea un array e gli elementi sono i testi compresi tra i ` + `

dove:

- `'(\\d+)(.+)'` significa, crea due gruppi e nel primo metti solo i numeri iniziali;
- `\\1` significa prendi e sostituisci il primo gruppo

---

Funzioni e variabili utilizzate:

* [regexp_replace](../gr_funzioni/stringhe_di_testo/stringhe_di_testo_unico.md#regexp_replace)
* [array_foreach](../gr_funzioni/stringhe_di_testo/stringhe_di_testo_unico.md#array_foreach)
* [string_to_array](../gr_funzioni/array/array_unico/#string_to_array)
1 change: 1 addition & 0 deletions docs/esempi/lista_esempi.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ nro|Esempio|Descrizione|Autore | Livello | funzioni utilizzate
79|[Prende attributo da un layer sovrapposto](prendi_attributo_da_elemento_sovrapposto.md)|Come prendere attributi da layer sovrapposti|Salvatore Fiandaca | 3 | [array_to_string](../gr_funzioni/arrayarray_unico.md#array_to_string), [overlay_intersects](../gr_funzioni/geometria/geometria_unico.md#overlay_intersects)
80|[seleziona poligoni con max area sovrapposta](selezionare_poligoni_max_area_sovrapposta.md)|Come prendere attributi da layer sovrapposti|Salvatore Fiandaca | 3 | [maximum](../gr_funzioni/aggrega/aggrega_unico.md#maximum), [intersection](../gr_funzioni/geometria/geometria_unico.md#intersection), [area](../gr_funzioni/geometria/geometria_unico.md#area), [overlay_intersects](../gr_funzioni/geometria/geometria_unico.md#overlay_intersects), [$geometry](../gr_funzioni/geometria/geometria_unico.md#geometry)
81|[tracciare punti a distanza prefissata lungo una linea](tracciare_punti_adistanzaprefissata_lungo_linea.md)|Come tracciare puntia distanza prefissata lungo una linea|Salvatore Fiandaca | 3 | [overlay_nearest](../gr_funzioni/geometria/geometria_unico.md#overlay_nearest), [collect_geometries](../gr_funzioni/geometria/geometria_unico.md#collect_geometries), [line_interpolate_point](../gr_funzioni/geometria/geometria_unico.md#line_interpolate_point), [\$geometry](../gr_funzioni/geometria/geometria_unico.md#geometry), [array_foreach](../gr_funzioni/array/array_unico.md#array_foreach), [array](../gr_funzioni/array/array_unico.md#array)
82|[estrarre numeri inizialia](estrarre_numeri_inizialia.md)|Come estrarre i numeri iniziali di un testo|Salvatore Fiandaca | 3 | [regexp_replace](../gr_funzioni/stringhe_di_testo/stringhe_di_testo_unico.md#regexp_replace), [array_foreach](../gr_funzioni/stringhe_di_testo/stringhe_di_testo_unico.md#array_foreach), [string_to_array](../gr_funzioni/array/array_unico/#string_to_array)


## Tags
Expand Down
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,7 @@ nav:
- Prende attributo da layer sovrapposto: esempi/prendi_attributo_da_elemento_sovrapposto.md
- Seleziona poligoni con max area sovrapposta: esempi/selezionare_poligoni_max_area_sovrapposta.md
- Tracciare puntia distanza prefissata lungo una linea: esempi/tracciare_punti_adistanzaprefissata_lungo_linea.md
- Estrarre i numeri iniziali di un testo: esempi/estrarre_numeri_iniziali.md
- Provaci tu: mettiti_alla_prova.md

- Corsi di Formazione:
Expand Down

0 comments on commit fb33ae7

Please sign in to comment.