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

> Documentación sobre el formato Regexp

# Regexp

| Entrada | Salida | Alias |
| ------- | ------ | ----- |
| ✔       | ✗      |       |

<div id="description">
  ## Descripción
</div>

El formato `Regex` analiza cada línea de los datos importados según la expresión regular proporcionada.

**Uso**

La expresión regular definida en la configuración [format\_regexp](/es/reference/settings/formats#format_regexp) se aplica a cada línea de los datos importados. El número de subpatrones de la expresión regular debe ser igual al número de columnas del conjunto de datos importado.

Las líneas de los datos importados deben estar separadas por el carácter de nueva línea `'\n'` o por una nueva línea de estilo DOS `"\r\n"`.

El contenido de cada subpatrón coincidente se analiza con el método del tipo de dato correspondiente, de acuerdo con la configuración [format\_regexp\_escaping\_rule](/es/reference/settings/formats#format_regexp_escaping_rule).

Si la expresión regular no coincide con la línea y [format\_regexp\_skip\_unmatched](/es/reference/settings/formats#format_regexp_escaping_rule) está establecido en 1, la línea se omite sin avisar. De lo contrario, se genera una excepción.

<div id="example-usage">
  ## Ejemplo de uso
</div>

Considere el archivo `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
```

y la tabla `imp_regex_table`:

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

Insertaremos los datos del archivo mencionado anteriormente en la tabla de arriba mediante la siguiente consulta:

```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;"
```

Ahora podemos `SELECT` los datos de la tabla para ver cómo el formato `Regex` interpretó los datos del archivo:

```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">
  ## Configuración del formato
</div>

Al trabajar con el formato `Regexp`, puede usar la siguiente configuración:

* `format_regexp` — [String](/es/reference/data-types/string). Contiene una expresión regular en formato [re2](https://github.com/google/re2/wiki/Syntax).

* `format_regexp_escaping_rule` — [String](/es/reference/data-types/string). Se admiten las siguientes reglas de escape:

  * CSV (de forma similar a [CSV](/es/reference/formats/CSV/CSV)
  * JSON (de forma similar a [JSONEachRow](/es/reference/formats/JSON/JSONEachRow)
  * Escaped (de forma similar a [TSV](/es/reference/formats/TabSeparated/TabSeparated)
  * Quoted (de forma similar a [Values](/es/reference/formats/Values)
  * Raw (extrae los subpatrones completos, sin reglas de escape, de forma similar a [TSVRaw](/es/reference/formats/TabSeparated/TabSeparated)

* `format_regexp_skip_unmatched` — [UInt8](/es/reference/data-types/int-uint). Indica si se debe lanzar una excepción en caso de que la expresión `format_regexp` no coincida con los datos importados. Puede establecerse en `0` o `1`.
