

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Operadores POSIX
<a name="pattern-matching-conditions-posix"></a>

Uma expressão regular POSIX é uma sequência de caracteres que especifica um padrão de correspondência. Uma string estabelece correspondência com uma expressão regular se for membro do conjunto regular descrito pela expressão regular.

As expressões regulares POSIX fornecem uma forma mais poderosa para a correspondência de padrão do que os operadores [LIKE](r_patternmatching_condition_like.md) e [SIMILAR TO](pattern-matching-conditions-similar-to.md). Padrões de expressão regular POSIX podem corresponder a qualquer porção de uma string, diferente do operador SIMILAR TO, que retorna verdadeiro somente se seu padrão corresponder a toda a string.

**nota**  
A correspondência de expressões regular usando operadores POSIX é computacionalmente cara. Recomendamos usar LIKE sempre que possível, especialmente ao processar um número muito grande de linhas. Por exemplo, as seguintes consultas são funcionalmente idênticas, mas a consulta que usa LIKE é executada várias vezes mais rápido do que a consulta que usa uma expressão regular:  

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

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

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

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

 *expressão*   
Uma expressão de caractere UTF-8 válida, tal como um nome de coluna. 

\$1  
Operador de negação. Não estabelece correspondência com a expressão regular.

\$1  
Execute uma correspondência com diferenciação entre maiúsculas e minúsculas para qualquer substring de *expressão*.   
`~~` é sinônimo de [LIKE](r_patternmatching_condition_like.md).

 *Padrão*   
Um literal de string que representa um padrão de expressão regular. 

Se o *padrão* não contém caracteres curinga, o padrão representa somente a própria string.

Para pesquisar strings que contêm metacaracteres, tal como ‘`. * | ? `‘, e assim por diante, escapam o caractere usando duas barras invertidas ('` \\` '). Ao contrário de `SIMILAR TO` e `LIKE`, a sintaxe de expressão regular POSIX não é compatível com um caractere de escape definido pelo usuário. 

Qualquer uma das expressões de caracteres pode ser de tipos de dados CHAR ou VARCHAR. Se eles forem diferentes, o Amazon Redshift converterá o *padrão* no tipo de dados da *expressão*. 

Todas as expressões de caracteres podem ser de tipos de dados CHAR ou VARCHAR. Se as expressões forem diferentes no tipo de dados, o Amazon Redshift os converterá no tipo de dados da *expressão*. 

A correspondência de padrão POSIX é compatível com os seguintes metacaracteres: 

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

O Amazon Redshift oferece suporte às classes de caracteres POSIX a seguir. 

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

 O Amazon Redshift oferece suporte aos operadores influenciados por Perl em expressões regulares a seguir. Escape o operador usando duas barras invertidas (‘`\\`’).   

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

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

A seguinte tabela mostra exemplos de correspondência de padrão usando operadores POSIX:

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

O seguinte exemplo localiza cidades cujos nomes contêm `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
```

O exemplo a seguir encontra cidades cujos nomes não contêm `E` ou `H`: 

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

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

O seguinte exemplo usa a string de escape padrão ('`\\`') para pesquisar strings que contêm um período. 

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