Estou procurando como substituir / codificar texto usando RegEx com base nas configurações / parâmetros RegEx abaixo:
RegEx.IgnoreCase = True
RegEx.Global = True
RegEx.Pattern = "[^a-z\d\s.]+"
Eu vi alguns exemplos no RegEx, mas não sei como aplicá-lo da mesma forma no SQL Server. Quaisquer sugestões seriam úteis. Obrigado.
sql-server
regex
sql-server-2008
tsql
Control Freak
fonte
fonte
Respostas:
Você não precisa interagir com o código gerenciado, pois pode usar LIKE :
Como sua expressão termina com
+
você pode ir com'%[^a-z0-9 .][^a-z0-9 .]%'
EDIT : para deixar claro: o SQL Server não oferece suporte a expressões regulares sem código gerenciado. Dependendo da situação, o
LIKE
operador pode ser uma opção, mas carece da flexibilidade que as expressões regulares fornecem.fonte
+
quantificador como{1,2}
quando deveria considerá-lo{1, }
. Surpreendentemente, isso funcionou para o OP.LIKE
não é regex (é uma sintaxe de correspondência de padrões mais limitada), portanto, a falta de suporte a regex não significa que isso não funcionará.Versão ligeiramente modificada da resposta de Julio.
Você precisará do Ole Automation Procedures ativado no SQL:
fonte
Você terá que construir um procedimento CLR que fornece funcionalidade regex, como este artigo ilustra.
Sua função de exemplo usa VB.NET:
... e é instalado no SQL Server usando o seguinte SQL (substituindo '%' - variáveis delimitadas por seus equivalentes reais:
fonte
Expressões regulares no uso de implementação de bancos de dados SQL Server
Expressão regular - descrição
. Corresponde a qualquer caractere
* Corresponde a qualquer caractere
+ Corresponde a pelo menos uma instância da expressão antes de
^ Comece no início da linha
$ Pesquisa no final da linha
< Corresponde apenas se a palavra começar neste ponto
> Corresponde apenas se a palavra parar neste ponto
\ n Corresponde a uma quebra de linha
[] Corresponde a qualquer caractere entre colchetes
[^ ...] Corresponde a qualquer caractere não listado após ^
[ABQ]% A string deve começar com as letras A, B ou Q e pode ter qualquer comprimento
[AB] [CD]% A string deve ter um comprimento de dois ou mais e deve começar com A ou B e ter C ou D como o segundo caractere
[AZ]% A string pode ter qualquer comprimento e deve começar com qualquer letra de A a Z
[A -Z0-9]% A string pode ter qualquer comprimento e deve começar com qualquer letra de A a Z ou numeral de 0 a 9
[^ AC]% A string pode ter qualquer comprimento, mas não pode começar com as letras de A a C
% [AZ] A string pode ter qualquer comprimento e deve terminar com qualquer uma das letras de A a Z
% [% $ # @]% A string pode ter qualquer comprimento e deve conter pelo menos um dos caracteres especiais entre o suporte
fonte
Ou alguma outra expressão em vez de AZ
fonte
Uma abordagem semelhante à resposta de @mwigdahl, você também pode implementar um .NET CLR em C #, com código como;
As instruções de instalação podem ser encontradas aqui
fonte