ClickHouse/docs/es/sql_reference/functions/string_replace_functions.md
2020-04-04 12:15:31 +03:00

4.4 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true 3e185d24c9 42 Para reemplazar en cadenas

Funciones para buscar y reemplazar en cadenas

replaceOne(pajar, patrón, reemplazo)

Sustituye la primera aparición, si existe, de la pattern subcadena en haystack con el replacement subcadena. Sucesivo, pattern y replacement deben ser constantes.

replaceAll (pajar, patrón, reemplazo), replace (pajar, patrón, reemplazo)

Sustituye todas las apariciones del pattern subcadena en haystack con el replacement subcadena.

replaceRegexpOne (pajar, patrón, reemplazo)

Reemplazo usando el pattern expresión regular. Una expresión regular re2. Sustituye sólo la primera ocurrencia, si existe. Un patrón se puede especificar como replacement. Este patrón puede incluir sustituciones \0-\9. Sustitución \0 incluye toda la expresión regular. Sustitución \1-\9 corresponden a los números de subpatrón. \ en una plantilla, escapar de ella usando \. También tenga en cuenta que un literal de cadena requiere un escape adicional.

Ejemplo 1. Conversión de la fecha a formato americano:

SELECT DISTINCT
    EventDate,
    replaceRegexpOne(toString(EventDate), '(\\d{4})-(\\d{2})-(\\d{2})', '\\2/\\3/\\1') AS res
FROM test.hits
LIMIT 7
FORMAT TabSeparated
2014-03-17      03/17/2014
2014-03-18      03/18/2014
2014-03-19      03/19/2014
2014-03-20      03/20/2014
2014-03-21      03/21/2014
2014-03-22      03/22/2014
2014-03-23      03/23/2014

Ejemplo 2. Copiar una cadena diez veces:

SELECT replaceRegexpOne('Hello, World!', '.*', '\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0') AS res
┌─res────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World! │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

replaceRegexpAll (pajar, patrón, reemplazo)

Esto hace lo mismo, pero reemplaza todas las ocurrencias. Ejemplo:

SELECT replaceRegexpAll('Hello, World!', '.', '\\0\\0') AS res
┌─res────────────────────────┐
│ HHeelllloo,,  WWoorrlldd!! │
└────────────────────────────┘

Como excepción, si una expresión regular funcionó en una subcadena vacía, el reemplazo no se realiza más de una vez. Ejemplo:

SELECT replaceRegexpAll('Hello, World!', '^', 'here: ') AS res
┌─res─────────────────┐
│ here: Hello, World! │
└─────────────────────┘

Sistema abierto.)

La función agrega una barra invertida antes de algunos caracteres predefinidos en la cadena. Caracteres predefinidos: 0, \, |, (, ), ^, $, ., [, ']', ?, '*,+,{,:,-'. Esta implementación difiere ligeramente de re2::RE2::QuoteMeta. Escapa de byte cero como \0 en lugar de 00 y escapa solo de los caracteres requeridos. Para obtener más información, consulte el enlace: RE2

Artículo Original