* split up select.md * array-join.md basic refactoring * distinct.md basic refactoring * format.md basic refactoring * from.md basic refactoring * group-by.md basic refactoring * having.md basic refactoring * additional index.md refactoring * into-outfile.md basic refactoring * join.md basic refactoring * limit.md basic refactoring * limit-by.md basic refactoring * order-by.md basic refactoring * prewhere.md basic refactoring * adjust operators/index.md links * adjust sample.md links * adjust more links * adjust operatots links * fix some links * adjust aggregate function article titles * basic refactor of remaining select clauses * absolute paths in make_links.sh * run make_links.sh * remove old select.md locations * translate docs/es * translate docs/fr * translate docs/fa * remove old operators.md location * change operators.md links * adjust links in docs/es * adjust links in docs/es * minor texts adjustments * wip * update machine translations to use new links * fix changelog * es build fixes * get rid of some select.md links * temporary adjust ru links * temporary adjust more ru links * improve curly brace handling * adjust ru as well * fa build fix * ru link fixes * zh link fixes * temporary disable part of anchor checks
4.5 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | 72537a2d52 |
42 | Pour remplacer dans les chaînes |
Fonctions de recherche et de remplacement dans les chaînes
replaceOne(botte de foin, modèle, remplacement)
Remplace la première occurrence, si elle existe, ‘pattern’ sous-chaîne dans ‘haystack’ avec l' ‘replacement’ substring. Ci-après, ‘pattern’ et ‘replacement’ doivent être constantes.
replaceAll(botte de foin, motif, remplacement), Remplacer(botte de foin, motif, remplacement)
Remplace toutes les occurrences du ‘pattern’ sous-chaîne dans ‘haystack’ avec l' ‘replacement’ substring.
replaceRegexpOne(botte de foin, modèle, remplacement)
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.
Exemple 1. Conversion de la date au format américain:
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
Exemple 2. Copier une chaîne dix fois:
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(botte de foin, modèle, remplacement)
Cela fait la même chose, mais remplace toutes les occurrences. Exemple:
SELECT replaceRegexpAll('Hello, World!', '.', '\\0\\0') AS res
┌─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. Exemple:
SELECT replaceRegexpAll('Hello, World!', '^', 'here: ') AS res
┌─res─────────────────┐
│ here: Hello, World! │
└─────────────────────┘
regexpQuoteMeta (s)
La fonction ajoute une barre oblique inverse avant certains caractères prédéfinis dans la chaîne. Les personnages prédéfinis: ‘0’, ‘\’, ‘|’, ‘(’, ‘)’, ‘^’, ‘$’, ‘.’, ‘[’, ']', ‘?’, '*‘,’+‘,’{‘,’:‘,’-'. 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