

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Opérateurs POSIX
<a name="pattern-matching-conditions-posix"></a>

Une expression régulière POSIX est une séquence de caractères qui spécifie un modèle de correspondance. Une chaîne correspond à une expression régulière si elle fait partie du jeu régulier décrit par l’expression régulière.

Les expressions régulières POSIX fournissent un moyen plus puissant pour la correspondance de modèle que les opérateurs [LIKE](r_patternmatching_condition_like.md) et [SIMILAR TO](pattern-matching-conditions-similar-to.md). Les modèles d’expressions régulières POSIX peuvent correspondre à une partie quelconque d’une chaîne, contrairement à l’opérateur SIMILAR TO, qui retourne true uniquement si son modèle correspond à la totalité de la chaîne.

**Note**  
La correspondance d’expressions régulières à l’aide des opérateurs POSIX est coûteuse en termes de calcul. Nous vous conseillons d’utiliser LIKE autant que possible, notamment lors du traitement d’un très grand nombre de lignes. Par exemple, les requêtes suivantes sont fonctionnellement identiques, mais la requête qui utilise LIKE s’exécute infiniment plus vite que la requête qui utilise une expression régulière :  

```
select count(*) from event where eventname ~ '.*(Ring|Die).*'; 
select count(*) from event where eventname LIKE '%Ring%' OR eventname LIKE '%Die%';
```

## Syntaxe
<a name="pattern-matching-conditions-posix-synopsis"></a>

```
expression [ ! ] ~ pattern
```

## Arguments
<a name="pattern-matching-conditions-posix-arguments"></a>

 *expression*   
Expression de caractère UTF-8 valide, comme un nom de colonne. 

\$1  
Opérateur de négation. Ne correspond pas à l’expression régulière.

\$1  
Effectuez une correspondance sensible à la casse pour une sous-chaîne d’*expression*.   
`~~` est un synonyme pour [LIKE](r_patternmatching_condition_like.md).

 *pattern*   
Chaîne littérale qui représente un modèle d’expression régulière. 

Si *pattern* ne contient pas de caractères génériques, le modèle représente uniquement la chaîne elle-même.

Pour rechercher des chaînes qui incluent des méta-caractères, tels que « `. * | ? ` », et ainsi de suite, faites précéder le caractère de la séquence d’échappement composée de deux barres obliques inverses « ` \\`  »). Contrairement à `SIMILAR TO` et `LIKE`, la syntaxe des expressions régulières POSIX ne gère pas de caractère d’échappement défini par l’utilisateur. 

Les expressions de caractère peuvent avoir CHAR ou VARCHAR comme type de données. En cas de différence, Amazon Redshift convertit *pattern* au type de données de l’*expression*. 

Toutes les expressions de caractères peuvent avoir CHAR ou VARCHAR comme type de données. Si les expressions diffèrent par le type de données, Amazon Redshift les convertit au type de données de l’*expression*. 

Le modèle de correspondance POSIX prend en charge les méta-caractères suivants : 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/redshift/latest/dg/pattern-matching-conditions-posix.html)

Amazon Redshift prend en charge les classes de caractères POSIX suivantes. 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/redshift/latest/dg/pattern-matching-conditions-posix.html)

 Amazon Redshift prend en charge les opérateurs suivants, influencés par Perl, dans les expressions régulières. Échappez l’opérateur à l’aide de deux barres obliques inverses («  »). (‘`\\`’).   

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/redshift/latest/dg/pattern-matching-conditions-posix.html)

## Exemples
<a name="pattern-matching-conditions-posix-synopsis-examples"></a>

Le tableau suivant montre des exemples de correspondance de modèle à l’aide des opérateurs POSIX :

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/redshift/latest/dg/pattern-matching-conditions-posix.html)

L’exemple suivant recherche toutes les villes dont le nom contient `E` ou `H` : 

```
SELECT DISTINCT city FROM users
WHERE city ~ '.*E.*|.*H.*' ORDER BY city LIMIT 5;

      city
-----------------
 Agoura Hills
 Auburn Hills
 Benton Harbor
 Beverly Hills
 Chicago Heights
```

L’exemple suivant recherche toutes les villes dont le nom ne contient pas `E` ou `H` : 

```
SELECT DISTINCT city FROM users WHERE city !~ '.*E.*|.*H.*' ORDER BY city LIMIT 5;

      city
-----------------
 Aberdeen	
 Abilene	
 Ada	
 Agat	
 Agawam
```

L’exemple suivant utilise la chaîne d’échappement (« `\\` ») pour rechercher les chaînes qui incluent un point. 

```
SELECT venuename FROM venue
WHERE venuename ~ '.*\\..*'
ORDER BY venueid;

          venuename
------------------------------
 St. Pete Times Forum
 Jobing.com Arena
 Hubert H. Humphrey Metrodome
 U.S. Cellular Field
 Superpages.com Center
 E.J. Nutter Center
 Bernard B. Jacobs Theatre
 St. James Theatre
```