RegexMatch (consulta NoSQL)

SE APLICA A: NoSQL

Esta función proporciona funcionalidades de expresión regular. Las expresiones regulares son una notación concisa y flexible para buscar patrones de texto.

Nota

Azure Cosmos DB for NoSQL usa expresiones regulares compatibles con PERL (PCRE).

Sintaxis

RegexMatch(<string_expr_1>, <string_expr_2>, [, <string_expr_3>])  

Argumentos

Descripción
string_expr_1 Expresión de cadena que se va a buscar.
string_expr_2 Expresión de cadena con una expresión regular definida que se usará al buscar string_expr_1.
string_expr_3(Opcional) Expresión de cadena opcional con los modificadores seleccionados que se van a usar con la expresión regular (string_expr_2). Si no se proporciona, el valor predeterminado es ejecutar la coincidencia de expresión regular sin modificadores.

Nota

Proporcionar una cadena vacía para string_expr_3 es funcionalmente equivalente a omitir el argumento.

Tipos de valores devueltos

Devuelve una expresión booleana.

Ejemplos

El siguiente ejemplo ilustra las coincidencias de expresiones regulares usando algunos modificadores diferentes.

SELECT VALUE {
    noModifiers: RegexMatch("abcd", "ABC"), 
    caseInsensitive: RegexMatch("abcd", "ABC", "i"), 
    wildcardCharacter: RegexMatch("abcd", "ab.", ""),
    ignoreWhiteSpace: RegexMatch("abcd", "ab c", "x"), 
    caseInsensitiveAndIgnoreWhiteSpace: RegexMatch("abcd", "aB c", "ix"),
    containNumberBetweenZeroAndNine: RegexMatch("03a", "[0-9]"),
    containPrefix: RegexMatch("salt3824908", "salt{1}"),
    containsFiveLetterWordStartingWithS: RegexMatch("shame", "s....", "i")
}
[
  {
    "noModifiers": false,
    "caseInsensitive": true,
    "wildcardCharacter": true,
    "ignoreWhiteSpace": true,
    "caseInsensitiveAndIgnoreWhiteSpace": true,
    "containNumberBetweenZeroAndNine": true,
    "containPrefix": true,
    "containsFiveLetterWordStartingWithS": true
  }
]

En el ejemplo siguiente se supone que tiene un contenedor con elementos que incluyen un campo name.

[
  {
    "name": "Tecozow coat",
    "category": "winter-coats"
  },
  {
    "name": "Bladnick coat",
    "category": "winter-coats"
  },
  {
    "name": "Anidin heavy jacket",
    "category": "winter-coats"
  }
]

En este ejemplo se usa una coincidencia de expresión regular como filtro para devolver un subconjunto de elementos.

SELECT VALUE
    p.name
FROM
    products p
WHERE
    p.category = "winter-coats" AND    
    RegexMatch(p.name, " coat{1}")
[
  "Tecozow coat",
  "Bladnick coat"
]

Comentarios

  • Esta función solo se beneficia de un índice de rango si la expresión regular puede descomponerse en StartsWith, EndsWith, Contains o StringEquals funciones de sistema equivalentes.
  • Devuelve undefined si la expresión de cadena que se va a buscar (string_expr_1 ), la expresión regular (string_expr_2) o los modificadores seleccionados (string_expr_3) no son válidos.
  • Esta función admite los cuatro modificadores siguientes: | | Formato | Descripción | | --- | --- | --- | | Varias líneas | m | Trate la expresión de cadena que se va a buscar como varias líneas. Sin esta opción, los caracteres ^ y $ coincidirán al principio o al final de la cadena y no en cada línea individual. | | Coincidir con cualquier cadena | s | Permitir que "." coincida con cualquier carácter, incluido un carácter de nueva línea. | | Ignorar mayúsculas y minúsculas | i | Ignorar mayúsculas y minúsculas al comparar patrones. | | Omitir espacios en blanco | x | Omita todos los caracteres de espacio en blanco. |
  • Si tiene que usar un metacarácter en una expresión regular y no desea que tenga un significado especial, debe usar el metacarácter como carácter de escape mediante \.