

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del 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>

Una expresión regular POSIX es una secuencia de caracteres que especifica un patrón de coincidencia. Una cadena coincide con una expresión regular si es miembro del conjunto regular descrito por la expresión regular.

Las expresiones regulares POSIX proporcionan un medio más potente para la coincidencia de patrones que los operadores [LIKE](r_patternmatching_condition_like.md) y [SIMILAR TO](pattern-matching-conditions-similar-to.md). Los patrones de expresión regular POSIX pueden coincidir con cualquier parte de una cadena, a diferencia del operador SIMILAR TO, que devuelve true solo si su patrón coincide con la cadena completa.

**nota**  
La coincidencia de expresiones regulares a través de los operadores POSIX es costosa informáticamente. Recomendamos utilizar LIKE cuando sea posible, especialmente cuando procesa una gran cantidad de filas. Por ejemplo, las siguientes consultas son idénticas desde el punto de vista funcional, pero la consulta que utiliza LIKE se ejecuta varias veces más rápido que la consulta que utiliza una expresión regular:  

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

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

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

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

 *expresión*   
Una expresión de carácter UTF-8 válido, como un nombre de columna. 

\$1  
Operador de negación. No coincide con la expresión regular.

\$1  
Realiza una coincidencia que distingue entre mayúsculas y minúsculas para cualquier subcadena de *expresión*.   
Un `~~` es sinónimo de [LIKE](r_patternmatching_condition_like.md).

 *Patrón*   
Un literal de cadena que representa un patrón de expresión regular. 

Si el *patrón* no contiene caracteres comodín, el patrón solamente representa la propia cadena.

Para buscar cadenas que incluyan metacaracteres, como "`. * | ? `", etc., aplique escape al carácter con dos barras diagonales invertidas ("` \\`"). A diferencia de `SIMILAR TO` y `LIKE`, la sintaxis de expresión regular POSIX no admite un carácter de escape definido por el usuario. 

Cualquiera de las expresiones de carácter pueden ser tipos de datos CHAR o VARCHAR. Si son diferentes, Amazon Redshift convierte el *patrón* al tipo de datos de la *expresión*. 

Todas las expresiones de carácter pueden ser tipos de datos CHAR o VARCHAR. Si las expresiones tienen diferentes tipos de datos, Amazon Redshift los convierte al tipo de datos de la *expresión*. 

La coincidencia de patrones POSIX admite los siguientes metacaracteres: 

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

Amazon Redshift admite las siguientes clases de caracteres POSIX. 

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

 Amazon Redshift admite los siguientes operadores influenciados por Perl en expresiones regulares. Aplique escape al operador utilizando dos barras diagonales invertidas ("’). (‘`\\`’).   

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

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

En la tabla siguiente se muestran ejemplos de coincidencia de patrones a través de operadores POSIX:

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

En el siguiente ejemplo, se encuentran las ciudades cuyos nombres contienen `E` o `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
```

En el siguiente ejemplo, se encuentran las ciudades cuyos nombres no contienen `E` ni `H`: 

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

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

En el siguiente ejemplo se usa la cadena de escape predeterminada ("`\\`") para buscar cadenas que incluyan un punto. 

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