Share via


RegexMatch (consulta NoSQL)

APLICA-SE A: NoSQL

Essa função fornece recursos de expressão regular. As expressões regulares são uma notação concisa e flexível para localização de padrões de texto.

Observação

Azure Cosmos DB for NoSQL usa expressões regulares compatíveis com PERL (PCRE).

Sintaxe

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

Argumentos

Descrição
string_expr_1 Uma expressão de cadeia de caracteres a ser pesquisada.
string_expr_2 Uma expressão de cadeia de caracteres com uma expressão regular definida para usar ao pesquisar string_expr_1.
string_expr_3(Opcional) Uma expressão de cadeia de caracteres opcional com os modificadores selecionados a serem usados com a expressão regular (string_expr_2). Se não for fornecido, o padrão será executar a correspondência de expressão regular sem modificadores.

Observação

Fornecer uma cadeia de caracteres vazia para string_expr_3 é funcionalmente equivalente a omitir o argumento.

Tipos de retorno

Retorna uma expressão booliana.

Exemplos

O exemplo a seguir ilustra correspondências de expressões regulares usando alguns 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
  }
]

O próximo exemplo pressupõe que você tenha um contêiner com itens, incluindo um campo name.

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

Este exemplo usa uma correspondência de expressão regular como um filtro para retornar um subconjunto de itens.

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

Comentários

  • Essa função se beneficia de um índice de intervalo somente se a expressão regular puder ser dividida em StartsWith, EndsWith, Contains ou StringEquals funções do sistema equivalentes.
  • Retorna undefined se a expressão de cadeia de caracteres a ser pesquisada (string_expr_1), a expressão regular (string_expr_2) ou os modificadores selecionados (string_expr_3) são inválidos.
  • Essa função dá suporte aos quatro modificadores a seguir: || | Formato | Descrição | | --- | --- | --- | | Várias Linhas | m | Trate a expressão de cadeia de caracteres a ser pesquisada como várias linhas. Sem essa opção, os caracteres ^ e $ corresponderão no início ou no final da cadeia de caracteres e não em cada linha individual. | | Corresponder a qualquer cadeia de caracteres | s | Permitir que "." corresponda a qualquer caractere, incluindo um caractere de nova linha. | | Ignorar maiúsculas e minúsculas | i | Ignorar letras maiúsculas e minúsculas quando houver correspondência de padrões. | | Ignorar espaço em branco | x | Ignorar todos os caracteres de espaço em branco. |
  • Se você quiser usar um metacaractere em uma expressão regular e não quiser que ele tenha um significado especial, você deverá escapar do metacaractere usando \ .