ClickHouse/docs/fr/sql-reference/functions/string-replace-functions.md

95 lines
4.5 KiB
Markdown
Raw Normal View History

2020-03-30 12:48:55 +00:00
---
machine_translated: true
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
2020-04-04 09:15:31 +00:00
toc_priority: 42
toc_title: "Pour remplacer dans les cha\xEEnes"
2020-03-30 12:48:55 +00:00
---
# Fonctions de recherche et de remplacement dans les chaînes {#functions-for-searching-and-replacing-in-strings}
2020-03-30 12:48:55 +00:00
## replaceOne(botte de foin, modèle, remplacement) {#replaceonehaystack-pattern-replacement}
Remplace la première occurrence, si elle existe, pattern sous-chaîne dans haystack avec l' replacement substring.
2020-03-30 12:48:55 +00:00
Ci-après, pattern et replacement doivent être constantes.
## replaceAll(botte de foin, motif, remplacement), Remplacer(botte de foin, motif, remplacement) {#replaceallhaystack-pattern-replacement-replacehaystack-pattern-replacement}
Remplace toutes les occurrences du pattern sous-chaîne dans haystack avec l' replacement substring.
2020-03-30 12:48:55 +00:00
## replaceRegexpOne(botte de foin, modèle, remplacement) {#replaceregexponehaystack-pattern-replacement}
Remplacement en utilisant le pattern expression régulière. Une expression régulière re2.
Remplace seulement la première occurrence, si elle existe.
Un motif peut être spécifié comme replacement. Ce modèle peut inclure des substitutions `\0-\9`.
Substitution `\0` inclut l'expression régulière entière. Substitution `\1-\9` correspond au sous-modèle numbers.To utilisez le `\` caractère dans un modèle, échappez-le en utilisant `\`.
Aussi garder à l'esprit qu'un littéral de chaîne nécessite une évasion.
2020-03-30 12:48:55 +00:00
Exemple 1. Conversion de la date au format américain:
``` sql
SELECT DISTINCT
EventDate,
replaceRegexpOne(toString(EventDate), '(\\d{4})-(\\d{2})-(\\d{2})', '\\2/\\3/\\1') AS res
FROM test.hits
LIMIT 7
FORMAT TabSeparated
```
``` text
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
```
Exemple 2. Copier une chaîne dix fois:
``` sql
SELECT replaceRegexpOne('Hello, World!', '.*', '\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0') AS res
```
``` text
┌─res────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World! │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```
## replaceRegexpAll(botte de foin, modèle, remplacement) {#replaceregexpallhaystack-pattern-replacement}
Cela fait la même chose, mais remplace toutes les occurrences. Exemple:
``` sql
SELECT replaceRegexpAll('Hello, World!', '.', '\\0\\0') AS res
```
``` text
┌─res────────────────────────┐
│ HHeelllloo,, WWoorrlldd!! │
└────────────────────────────┘
```
Par exception, si une expression régulière travaillé sur un vide sous-chaîne, le remplacement n'est pas effectué plus d'une fois.
2020-03-30 12:48:55 +00:00
Exemple:
``` sql
SELECT replaceRegexpAll('Hello, World!', '^', 'here: ') AS res
```
``` text
┌─res─────────────────┐
│ here: Hello, World! │
└─────────────────────┘
```
## regexpQuoteMeta (s) {#regexpquotemetas}
La fonction ajoute une barre oblique inverse avant certains caractères prédéfinis dans la chaîne.
Les personnages prédéfinis: 0, \\, \|, (, ), ^, $, ., \[, '\]', ?, '\*,+,{,:,-'.
2020-03-30 12:48:55 +00:00
Cette implémentation diffère légèrement de re2:: RE2:: QuoteMeta. Il échappe à zéro octet comme \\0 au lieu de 00 et il échappe uniquement les caractères requis.
Pour plus d'informations, voir le lien: [RE2](https://github.com/google/re2/blob/master/re2/re2.cc#L473)
2020-03-30 12:48:55 +00:00
[Article Original](https://clickhouse.tech/docs/en/query_language/functions/string_replace_functions/) <!--hide-->