sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo definir una expresión regular con múltiples operadores OR donde cada término incluye un prefijo y un sufijo de espacio?

Prueba esto:

(?: (?:and or|and|a o|company|co|c o|dba|d b a))+(?!\S)/i

Al igual que @mathematical.coffee, comencé por factorizar el espacio inicial y reemplacé el espacio posterior con una anticipación, en este caso, un negativo mirar hacia adelante para un no-espacio en blanco personaje. De esta manera funcionará incluso si el token es el último en la cadena y no va seguido de un espacio. Pero el cambio más importante es reemplazar dos o más coincidencias a la vez siempre que sea posible.