Estoy buscando cómo reemplazar / codificar texto usando RegEx según la configuración / parámetros de RegEx a continuación:
RegEx.IgnoreCase = True
RegEx.Global = True
RegEx.Pattern = "[^a-z\d\s.]+"
He visto algunos ejemplos en RegEx, pero estoy confundido sobre cómo aplicarlo de la misma manera en SQL Server. Cualquier sugerencia sería útil. Gracias.
sql-server
regex
sql-server-2008
tsql
Dominante
fuente
fuente
Respuestas:
No necesita interactuar con el código administrado, ya que puede usar LIKE :
Cuando tu expresión termine con
+
, puedes ir con'%[^a-z0-9 .][^a-z0-9 .]%'
EDITAR : para aclarar: SQL Server no admite expresiones regulares sin código administrado. Dependiendo de la situación, el
LIKE
operador puede ser una opción, pero carece de la flexibilidad que proporcionan las expresiones regulares.fuente
+
cuantificador como{1,2}
cuándo debería tomarlo como{1, }
. Sorprendentemente, esto funcionó para el OP.LIKE
no es regex (es una sintaxis de coincidencia de patrones más limitada), por lo que la falta de compatibilidad con expresiones regulares no significa que esto no funcione.Versión ligeramente modificada de la respuesta de Julio.
Necesitará los procedimientos de automatización de Ole activados en SQL:
fuente
Tendrá que crear un procedimiento CLR que proporcione la funcionalidad de expresiones regulares, como ilustra este artículo .
Su función de ejemplo usa VB.NET:
... y se instala en SQL Server usando el siguiente SQL (reemplazando '%' - variables delimitadas por sus equivalentes reales:
fuente
Expresiones regulares en el uso de implementación de bases de datos de SQL Server
Expresión regular: descripción
. Coincidir con cualquier carácter
* Coincidir con cualquier carácter
+ Coincidir con al menos una instancia de la expresión antes
^ Comenzar al principio de la línea
$ Buscar al final de la línea
< Coincidir solo si la palabra comienza en este punto
> Coincidir solo si la palabra se detiene en este punto
\ n Coincidir con un salto de línea
[] Coincidir con cualquier carácter dentro de los corchetes
[^ ...] Coincide con cualquier carácter que no aparezca en la lista después de ^
[ABQ]% La cadena debe comenzar con las letras A, B o Q y puede tener cualquier longitud
[A B C D]% La cadena debe tener una longitud de dos o más y debe comenzar con A o B y tener C o D como segundo carácter
[AZ]% La cadena puede tener cualquier longitud y debe comenzar con cualquier letra de la A a la Z
[A -Z0-9]% La cadena puede tener cualquier longitud y debe comenzar con cualquier letra de la A a la Z o con un número del 0 al 9
[^ AC]% La cadena puede tener cualquier longitud pero no puede comenzar con las letras A a C
% [AZ] La cadena puede tener cualquier longitud y debe terminar con cualquiera de las letras de la A a la Z
% [% $ # @]% La cadena puede tener cualquier longitud y debe contener al menos uno de los caracteres especiales incluidos en el soporte
fuente
O alguna otra expresión en lugar de AZ
fuente
Un enfoque similar a la respuesta de @ mwigdahl, también puede implementar un .NET CLR en C #, con código como;
Las instrucciones de instalación se pueden encontrar aquí
fuente