to-regex
Crea una expresión regular BSON (como bson:regex) a partir de un patrón de búsqueda y una cadena de reglas de coincidencia (opciones).

Lenguajes
Built-In
Parámetros
Nombre | Tipo | Descripción |
|---|---|---|
pattern | xs:string | Una cadena UTF-8 que define el patrón de expresión regular utilizado para la coincidencia. |
opciones | xs:string | Una cadena de caracteres que determina el comportamiento de coincidencia. Estos caracteres deben proporcionarse en orden alfabético (por ejemplo, «im» en lugar de «mi») para garantizar una representación BSON coherente. |
Opciones
Estas son las opciones compatibles:
•i (sin distinción entre mayúsculas y minúsculas): busca coincidencias tanto en mayúsculas como en minúsculas (por ejemplo, A encuentra a).
•m (multilínea): hace que los símbolos ^ y $ coincidan con el inicio y el final de cada línea, en lugar de con el inicio y el final de toda la cadena.
•s (Dotall): permite que el carácter punto (.) encuentre cualquier cosa, incluidos los caracteres de salto de línea.
•u (Unicode): habilita la compatibilidad con Unicode para clases de caracteres abreviadas como \w (caracteres de palabra) y \d (dígitos).
•x (detallado): ignora los espacios en blanco dentro del patrón y admite comentarios (que comienzan por #), lo que facilita la lectura de patrones complejos.
Ejemplo
Este ejemplo muestra cómo utilizar la función to-regex para filtrar datos de MongoDB (imagen siguiente). Nuestro objetivo es filtrar la información sobre los equipos de carreras y mostrar únicamente aquellos equipos que incluyan la palabra «Mercedes» en su nombre:
1.En primer lugar, configuramos el componente WHERE/ORDER de SQL/NoSQL de la siguiente manera:
oFiltro:
{
"name" : @name
}
oEl parámetro name se define como de tipo «regex» porque recibe la expresión regular BSON de la función to-regex.
oLos resultados filtrados están configurados para ordenarse por el campo name en orden ascendente.
2.En segundo lugar, añadimos la función to-regex y definimos sus parámetros:
oPatrón: .*mercedes.*, donde .* representa cualquier carácter una o más veces.
oOpciones: i, lo que significa que la búsqueda no distingue entre mayúsculas y minúsculas.
3.En tercer lugar, conectamos el resultado de la función to-regex al parámetro name del componente WHERE/ORDER de SQL/NoSQL para ejecutar la búsqueda.

Obtenemos el siguiente resultado:
<teams> <team id="305" name="Aston Martin Aramco Mercedes" nation="UK" points="94"> <driver id="109" name="Fernando Alonso" nation="ES" since="2024-01-01T00:00:00" points="58"></driver> <driver id="110" name="Lance Stroll" nation="CA" since="2024-01-01T00:00:00" points="36"></driver> </team> <team id="301" name="McLaren Mercedes" nation="UK" points="666"> <driver id="101" name="Lando Norris" nation="UK" since="2024-01-01T00:00:00" points="282"></driver> <driver id="102" name="Oscar Piastri" nation="AU" since="2024-01-01T00:00:00" points="384"></driver> </team> <team id="304" name="Mercedes" nation="DE" points="468"> <driver id="107" name="Lewis Hamilton" nation="UK" since="2024-01-01T00:00:00" points="240"></driver> <driver id="108" name="George Russell" nation="UK" since="2024-01-01T00:00:00" points="228"></driver> </team> <team id="309" name="Williams Mercedes" nation="UK" points="17"> <driver id="117" name="Alexander Albon" nation="TH" since="2024-01-01T00:00:00" points="12"></driver> <driver id="118" name="Logan Sargeant" nation="US" since="2024-01-01T00:00:00" points="5"></driver> </team> </teams> |