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)
Base de datos SQL de Azure SQL Database
deAzure SQL Managed Instance
en Microsoft Fabric
Devuelve una cadena de origen modificada reemplazada por una cadena de reemplazo, donde se encontró la aparición del patrón de expresión regular. Si no se encuentra ninguna coincidencia, la función devuelve la cadena original.
REGEXP_REPLACE
(
string_expression,
pattern_expression [ , string_replacement [ , start [ , occurrence [ , flags ] ] ] ]
)
Note
Las expresiones regulares están disponibles en Instancia administrada de Azure SQL con sql Server 2025 o la directiva de actualizaciónalways-up-to-date.
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_LIKEfunciones , REGEXP_COUNTy REGEXP_INSTR admiten 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.
string_replacement
Expresión de cadena que especifica la cadena de reemplazo para las subcadenas coincidentes y reemplaza las subcadenas coincidentes por el patrón. El string_replacement puede ser de tipos de datos char, varchar, nchar y nvarchar. Si se especifica una cadena vacía (''), la función quita todas las subcadenas coincidentes y devuelve la cadena resultante. La cadena de reemplazo predeterminada es la cadena vacía ('').
El string_replacement puede contener \n, donde n es de 1 a 9, para indicar que la subcadena de origen que coincide con el grupo entre paréntesis (subexpresión) del patrón debe insertarse y puede contener & para indicar que se debe insertar la subcadena que coincide con todo el patrón. Escriba \ si necesita colocar una barra diagonal inversa literal en el texto de reemplazo.
Por ejemplo
REGEXP_REPLACE('123-456-7890', '(\d{3})-(\d{3})-(\d{4})', '(\1) \2-\3')
Returns:
(123) 456-7890
Si el elemento proporcionado \n en string_replacement es mayor que el número de grupos de la pattern_expression, la función omite el valor.
Por ejemplo:
REGEXP_REPLACE('123-456-7890', '(\d{3})-(\d{3})-(\d{4})', '(\1) (\4)-xxxx')
Returns:
(123) ()-xxxx
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, devuelve el error. Si la expresión start es mayor que la longitud de string_expression, la función devuelve string_expression. El valor predeterminado es 1.
occurrence
Expresión (entero positivo) que especifica la aparición de la expresión de patrón dentro de la cadena de origen que se va a buscar o reemplazar. El valor predeterminado es 1. Busca en el primer carácter del string_expression. Para un entero npositivo, busca la nth aparición comenzando por el primer carácter después de la primera aparición de la pattern_expression, etc.
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
Expression.
Examples
Reemplace todas las apariciones de a o e por X en los nombres de producto.
SELECT REGEXP_REPLACE(PRODUCT_NAME, '[ae]', 'X', 1, 0, 'i')
FROM PRODUCTS;
Reemplace la primera aparición de cat o dog por pet en las descripciones del producto
SELECT REGEXP_REPLACE(PRODUCT_DESCRIPTION, 'cat|dog', 'pet', 1, 1, 'i')
FROM PRODUCTS;
Reemplace los últimos cuatro dígitos de los números de teléfono por asteriscos
SELECT REGEXP_REPLACE(PHONE_NUMBER, '\d{4}$', '****')
FROM CUSTOMERS;