Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: Sql Server 2025 (17.x)
Punto de conexión de análisis sql de Azure SQL Database de Azure SQL Databasede
Azure SQL Database
en Microsoft Fabric y Almacenamiento en la
base de datos SQL de Microsoft Fabric en Microsoft Fabric
La REGEXP_COUNT función de expresión regular escalar cuenta el número de veces que un patrón de expresión regular se empareja en una cadena.
REGEXP_COUNT
(
string_expression,
pattern_expression [ , start [ , flags ] ]
)
Arguments
string_expression
Expresión de una cadena de caracteres.
Puede ser una constante, variable o columna de cadena de caracteres.
Tipos de datos: char, nchar, varcharo nvarchar.
Note
Las REGEXP_* funciones soportan tipos LOB (varchar(max) y nvarchar(max)) hasta 2 MB para el parámetro string_expression .
pattern_expression
Patrón de expresión regular que debe coincidir. Normalmente, un literal de texto.
Tipos de datos: char, nchar, varcharo nvarchar. pattern_expression admite una longitud máxima de caracteres de 8000 bytes.
start
Especifique la posición inicial de la búsqueda dentro de la cadena de búsqueda. Optional. El tipo es int o bigint.
La numeración se basa en 1, lo que significa que el primer carácter de la expresión es 1 y el valor debe ser >= 1. Si la expresión start es menor que 1, el pattern_expression devuelto comienza en el primer carácter especificado en string_expression. Si la expresión start es mayor que la longitud de string_expression, la función devuelve 0. El valor predeterminado es 1.
Si la expresión start es menor que 1, la consulta devuelve un error.
flags
Uno o varios caracteres que especifican los modificadores usados para buscar coincidencias. El tipo es varchar o char, con un máximo de 30 caracteres.
Por ejemplo, ims. El valor predeterminado es c. Si se proporciona una cadena vacía (' '), se tratará como el valor predeterminado ('c'). Proporcione c o cualquier otra expresión de caracteres. Si la marca contiene varios caracteres contradictorios, SQL Server usa el último carácter.
Por ejemplo, si especifica ic la expresión regular devuelve coincidencias que distinguen mayúsculas de minúsculas.
Si el valor contiene un carácter distinto de los enumerados en Valores de marca admitidos, la consulta devuelve un error como el ejemplo siguiente:
Invalid flag provided. '<invalid character>' are not valid flags. Only {c,i,s,m} flags are valid.
Valores de marca admitidos
| Flag | Description |
|---|---|
i |
No distingue mayúsculas de minúsculas (valor predeterminado false) |
m |
Modo de varias líneas: ^ y $ coinciden con la línea de inicio y finalización, además del texto de inicio y finalización (valor predeterminado false) |
s |
Permitir que . coincida \n (valor predeterminado false) |
c |
Distingue mayúsculas de minúsculas (valor predeterminado true) |
Valor devuelto
int
Compatibilidad con la plataforma
- En Azure SQL Managed Instance, las funciones de expresión regular de T-SQL están disponibles solo con la política de actualización de fecha SQL Server 2025 o Always-up-to.
- Las funciones de expresión regular de T-SQL están disponibles en Azure SQL Database, SQL Database en Fabric y a partir de SQL Server 2025.
- Las funciones de expresión regular de T-SQL no están disponibles en SQL Server 2022 ni en versiones anteriores.
- Las funciones escalares de expresiones regulares de T-SQL están disponibles como función de vista previa en Fabric Data Warehouse. Para más información, véase Funciones de expresiones regulares en Fabric Data Warehouse. Las funciones de T-SQL con valores de tabla con expresión regular no están disponibles en Fabric Data Warehouse.
Examples
Contar cuántas veces aparece la letra a en cada nombre de producto.
SELECT PRODUCT_NAME,
REGEXP_COUNT(PRODUCT_NAME, 'a') AS A_COUNT
FROM PRODUCTS;
Contar cuántos productos tienen un nombre que termina con ing.
SELECT COUNT(*)
FROM PRODUCTS
WHERE REGEXP_COUNT(PRODUCT_NAME, 'ing$') > 0;
Contar cuántos productos tienen un nombre que contiene tres consonantes consecutivos, ignorando mayúsculas y minúsculas.
SELECT COUNT(*)
FROM PRODUCTS
WHERE REGEXP_COUNT(PRODUCT_NAME, '[^aeiou]{3}', 1, 'i') > 0;