> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Documentation sur le format Regexp

# Regexp

| Entrée | Sortie | Alias |
| ------ | ------ | ----- |
| ✔      | ✗      |       |

<div id="description">
  ## Description
</div>

Le format `Regex` analyse chaque ligne des données importées selon l’expression régulière fournie.

**Utilisation**

L’expression régulière définie par le paramètre [format\_regexp](/fr/reference/settings/formats#format_regexp) est appliquée à chaque ligne des données importées. Le nombre de sous-motifs dans l’expression régulière doit être égal au nombre de colonnes du jeu de données importé.

Les lignes des données importées doivent être séparées par le caractère de nouvelle ligne `'\n'` ou par un saut de ligne de style DOS `"\r\n"`.

Le contenu de chaque sous-motif correspondant est analysé selon la méthode du type de données correspondant, conformément au paramètre [format\_regexp\_escaping\_rule](/fr/reference/settings/formats#format_regexp_escaping_rule).

Si l’expression régulière ne correspond pas à la ligne et que [format\_regexp\_skip\_unmatched](/fr/reference/settings/formats#format_regexp_escaping_rule) est défini sur 1, la ligne est simplement ignorée. Sinon, une exception est levée.

<div id="example-usage">
  ## Exemple d'utilisation
</div>

Prenons le fichier `data.tsv` :

```text title="data.tsv" theme={null}
id: 1 array: [1,2,3] string: str1 date: 2020-01-01
id: 2 array: [1,2,3] string: str2 date: 2020-01-02
id: 3 array: [1,2,3] string: str3 date: 2020-01-03
```

et la table `imp_regex_table` :

```sql title="Query" theme={null}
CREATE TABLE imp_regex_table (id UInt32, array Array(UInt32), string String, date Date) ENGINE = Memory;
```

Nous allons insérer dans la table ci-dessus les données du fichier mentionné plus haut à l’aide de la requête suivante :

```bash title="Query" theme={null}
$ cat data.tsv | clickhouse-client  --query "INSERT INTO imp_regex_table SETTINGS format_regexp='id: (.+?) array: (.+?) string: (.+?) date: (.+?)', format_regexp_escaping_rule='Escaped', format_regexp_skip_unmatched=0 FORMAT Regexp;"
```

Nous pouvons maintenant `SELECT` les données de la table pour voir comment le format `Regex` a interprété les données du fichier :

```sql title="Query" theme={null}
SELECT * FROM imp_regex_table;
```

```text title="Response" theme={null}
┌─id─┬─array───┬─string─┬───────date─┐
│  1 │ [1,2,3] │ str1   │ 2020-01-01 │
│  2 │ [1,2,3] │ str2   │ 2020-01-02 │
│  3 │ [1,2,3] │ str3   │ 2020-01-03 │
└────┴─────────┴────────┴────────────┘
```

<div id="format-settings">
  ## Paramètres du format
</div>

Lorsque vous utilisez le format `Regexp`, vous pouvez utiliser les paramètres suivants :

* `format_regexp` — [String](/fr/reference/data-types/string). Contient une expression régulière au format [re2](https://github.com/google/re2/wiki/Syntax).

* `format_regexp_escaping_rule` — [String](/fr/reference/data-types/string). Les règles d’échappement suivantes sont prises en charge :

  * CSV (similaire à [CSV](/fr/reference/formats/CSV/CSV)
  * JSON (similaire à [JSONEachRow](/fr/reference/formats/JSON/JSONEachRow)
  * Escaped (similaire à [TSV](/fr/reference/formats/TabSeparated/TabSeparated)
  * Quoted (similaire à [Values](/fr/reference/formats/Values)
  * Raw (extrait les sous-motifs dans leur intégralité, sans règle d’échappement, similaire à [TSVRaw](/fr/reference/formats/TabSeparated/TabSeparated)

* `format_regexp_skip_unmatched` — [UInt8](/fr/reference/data-types/int-uint). Définit s’il faut lever une exception lorsque l’expression `format_regexp` ne correspond pas aux données importées. Peut être défini sur `0` ou `1`.
